Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [JSP] Problema nel memorizzare una data in un DB.

    Raga vi spiego il mio problema:
    io ho una tabella in un DB Oracle9i che contiene vari tipi di dati, tra cui un campo data.
    Ho fatto la mia pagina in JSP per inserire i dati in qui campi e se escludo il campo data mi va tutto bene se invece inserisco anche quello mi da errore!!!
    L'errore che i da quando provo ad eseguire il salvataggio dei dati è questo:
    oracle.jbo.DMLException: JBO-26041: Failed to post data to database during "Insert": SQL Statement "BEGIN INSERT INTO RM_BOLLA2(IDBOLLA_S) VALUES (:1) RETURNING ROWID INTO :2; END;".

    Vi scrivo una parte del codice delle due pagine:

    [Pagina contenente la form]
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.sql.*" %>
    <%@ page import="oracle.jbo.*" %>

    <TITLE>
    Inserimento dati tabella
    </TITLE>
    </HEAD>
    <BODY>

    <jbo:ApplicationModule id="ApplicationPackageModule" configname="applicationPackage.ApplicationPackageM odule.ApplicationPackageModuleLocal" releasemode="Stateful" />
    <jboataSource id="InsBolla1" appid="ApplicationPackageModule" viewobject="RmBolla2View" />

    <form name="form1" method="POST" action="nuovaBolla.jsp">

    Numero bolla:
    <input type="text" name=Idbolla" >


    Data e ora:
    <input type="text" name="cdata">




    <input type="submit" value="create">
    </form>
    </BODY>
    </HTML>
    <jbo:ReleasePageResources />
    [/Pagina contenente la form]

    e

    [Pagina trasferimento dati da Browser a DB]
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="oracle.jbo.*" %>
    <%@ page import="java.sql.*" %>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
    <TITLE>
    inserimento
    </TITLE>
    </HEAD>
    <BODY>
    ciao
    <%String a=request.getParameter("IdbollaS");%>
    <%String b=request.getParameter("cdata");%>

    <jbo:ApplicationModule id="ApplicationPackageModule" configname="applicationPackage.ApplicationPackageM odule.ApplicationPackageModuleLocal" username="fnaresdb01_20030110" password="ares" releasemode="Stateful" />
    <jboataSource id="insBolla1" appid="ApplicationPackageModule" viewobject="RmBolla2View" />
    <jbo:Row id="newRow" datasource="insBolla1" action="create">
    <jbo:SetAttribute datasource="insBolla1" dataitem="IdbollaS" value="<%=a%>"/>
    <jbo:SetAttribute datasource="insBolla1" dataitem="DatoraT" value="<%=b%>"/>

    </jbo:Row>
    </BODY>
    </HTML>
    <jbo:Commit appid="ApplicationPackageModule"/>
    <jbo:ReleasePageResources />
    [/Pagina trasferimento dati da Browser a DB]

    Come potete notare uso sia le librerie JBO che quelle standard e di prove ne ho fatte parecchie prima di scrivere qui! Non sono così esperto in JAVA da potermi estraniare completamente dall'IDE (JDEVELOPER 9i). Ma se voi sapete risolvere il mio problea senza scomodare le librerie interne ne sarei comunque soddisfatto!!!
    Grazie per l'aiuto che mi darete e scusate la mia prolissità.

  2. #2
    Nessun consiglio??????
    Va beh intanto vi scrivo le mie ultime modifiche:

    [JSP CODE]
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="oracle.jbo.*" %>
    <%@ page import="java.sql.ResultSet" %>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
    <TITLE>
    inserimento
    </TITLE>
    </HEAD>
    <BODY>
    ciao
    <%String a=request.getParameter("IdbollaS");%>
    <%String b=request.getParameter("DatoraT");%>

    <jbo:ApplicationModule id="ApplicationPackageModule" configname="applicationPackage.ApplicationPackageM odule.ApplicationPackageModuleLocal" releasemode="Stateful" />
    <jboataSource id="insBolla1" appid="ApplicationPackageModule" viewobject="RmBollaView" />

    <jbo:Row id="newRow" datasource="insBolla1" action="create">
    <jbo:SetAttribute datasource="insBolla1" dataitem="IdbollaS" value="<%=a%>"/>
    <jbo:SetAttribute datasource="insBolla1" dataitem="DatoraT" value="<%=b%>"/>
    <jbo:ExecuteSQL appid="ApplicationPackageModule" >
    DATORA_T:=to_date("DatoraT",'dd/mm/yy')
    </jbo:ExecuteSQL>

    </jbo:Row>
    </BODY>
    </HTML>
    <jbo:Commit appid="ApplicationPackageModule"/>
    <jbo:ReleasePageResources />
    [/JSP CODE]

    So che, probabilmente, molti di voi non conoscono e librerie JBO ma non penso che siano così diverse da quelle standard.... Comunque vi spiego in breve cosa fa questa pagina:
    con il comando:
    <%String b=request.getParameter("DatoraT");%>
    prende il valore DatoraT messo in una form di un'altra pagina salvato come stringa,
    con il comando:
    <jbo:SetAttribute datasource="insBolla1" dataitem="DatoraT" value="<%=b%>"/>
    lo prende e lo memorizza nel DB
    e con il comando SQL:
    <jbo:ExecuteSQL appid="ApplicationPackageModule" >
    DATORA_T:=to_date("DatoraT",'dd/mm/yy')
    </jbo:ExecuteSQL>
    trasforma il campo DatoraT da stringa in un campo data....
    Il codice funziona bene per tutti i campi (nel codice messo ho lasciato solo 2 ma ne ha di +....) il problema è solo per la data.... ho già provato a spostare le righe del comando SQL sia prima della dichiarazione che subito dopo, ma mi da sempre errore, ho provato a togliere le virgoette sostituendole con semplici apici o togliendole del tutto ma niente..... Ora vi chiedo:
    MI SAPETE AIUTARE?????? non penso sia così difficile.... o che non sia mai capitato a nessuno di dover inserire una data in un DB......
    Grazie dell'aiuto che, spero, mi darete.....

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    le date in oracle vanno inserite con
    to_date('03/03/2003', 'DD/MM/YYYY')

  4. #4
    Originariamente inviato da floyd
    le date in oracle vanno inserite con
    to_date('03/03/2003', 'DD/MM/YYYY')
    Grazie Floyd, ho provato ma mi dice:
    oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of typeracle.jbo.domain.Date with value:03/03/2003

    Dove nel tuo codice naturalmente ho messo:
    to_date('DatoraT', 'DD/MM/YYYY')
    DatoraT è il nome del campo dove deve memorizzare la data che inserisco nel form.....

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    diciamo che jbo non li uso
    se il messaggio viene dalla jvm probabilmente devi usare oggetti come Date o Timestamp, se viene da oracle non saprei

  6. #6
    Ho provato ad inserire già nela prima pagine un campo di tipo data ma non funziona lo stesso......
    Va beh grazie lo stesso...... se ti dovesse venire in mente qualcosa......

  7. #7
    mmmmmmmmmmm io continuo questo thread perchè spero sepre in qualcuno che mi aiuti come ha cercato di fare Floyd..... Comunque ora vi faccio vedee la mia nuova pagina JSP:

    [JSP CODE]
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.util.Date" %>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
    <TITLE>
    inserimento
    </TITLE>
    </HEAD>
    <BODY>
    Inserimento eseguito con successo!
    <%String a=request.getParameter("IdbollaS");%>
    .......
    <%Date DatoraT=request.getParameter("DatoraT");%>

    <jbo:ApplicationModule id="ApplicationPackageModule" configname="applicationPackage.ApplicationPackageM odule.ApplicationPackageModuleLocal" username="fnaresdb01_20030110" password="ares" releasemode="Stateful" />
    <jboataSource id="insBolla1" appid="ApplicationPackageModule" viewobject="RmBolla2View" />

    <jbo:Row id="newRow" datasource="insBolla1" action="create">
    <jbo:SetAttribute datasource="insBolla1" dataitem="IdbollaS" value="<%=a%>"/>
    ......
    <jbo:SetAttribute datasource="insBolla1" dataitem="DatoraT" value="<%=DatoraT%>"/>

    </jbo:Row>
    </BODY>
    </HTML>
    <jbo:Commit appid="ApplicationPackageModule"/>
    <jbo:ReleasePageResources />
    [/JSP CODE]

    Ora a parte il problea del comando setAttribute (penso sia giusto come comando ma potrei sbagliarmi....) il compilatore mi da il seguente problema:
    Error(20,40): incompatible types; found java.lang.String, required jaua.util.Date.

    Ora se vedete i vecchi codici negli import avevo java.sql.* e oracle.jbo.* li ho sostituiti con java.util.Date perchè se provaro a compiare questa pagina mi dava un errore di incopatibilità tra java.sql.Date e java.util.Date......

    Va beh... io continuo a sperare che qualcuno mi possa aiutare... a parte questo: Buona giornata a tutti!

  8. #8
    Non ci crederete mai ma ho finalmente risolto il problema!!!!!
    Però vi chiedo un favore..... non chiedetemi come ho fatto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.