Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    8

    Problema conversine data asp su db access

    Salve,

    scrivo perchè ho il seguente problema:
    Ho spostato un sito da un server windows 2003 std con iis 6.0, ad un altro con la stessa configurazione.
    Ho delle pagine asp, dove gli utenti inserisco dei dati che vengono salvati su un db in access.
    Sul vecchio server, le date inserite in formato europeo gg/mm/aaaa venivano salvate nello stesso formato.
    Sul nuovo server, se inserisco una data es. 03/09/2012 viene salvata in formato 09/03/2012, ma se inserisco la data 19/09/2012 viene salvata correttamente.
    Ho anche impostato i parametri in Regional and Language Options nel formato italiano.

    cordiali saluti

    Massu63

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ciao,
    non saprei dire se il server interpreta diversamente visto che dici che sono configurati allo stesso modo

    access "pensa in inglese"... ci fai vedere una query che inserisce la data?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    8
    Premetto che le pagine asp non le ho gestite io.

    Questo è la funzione che controlla la data

    <%
    'funzione che consente di avere in uscita la data sempre nello
    'stesso formato ossia gg/mm/aaaa indipendente dalle impostazioni
    'rispettando le convenzioni delle impostazioni internazionali
    'date di 2 cifre: formato italiano con anno 2 cifre tra 1930-2029
    public function ConverteData(dataIn)
    if len(day(dataIn))<2 then
    converteData="0" & day(dataIn)
    else
    converteData= day(dataIn)
    end if
    if len(month(dataIn))<2 then
    converteData=converteData & "/0" & month(dataIn)
    else
    converteData= converteData & "/" & month(dataIn)
    end if
    if len(year(dataIn))<4 and (year(dataIn)>=0 and year(dataIn)<30) then
    converteData=converteData & "/20" & year(dataIn)
    elseif len(year(dataIn))<4 and (year(dataIn)=>30 and year(dataIn)<=99) then
    converteData=converteData & "/19" & year(dataIn)
    else
    converteData= converteData & "/" & year(dataIn)
    end if
    end function
    %>


    Il problema sembra sia proprio su access, perchè quando inserisco è salvo, a monitor mi visualizza la data corretta, ma se chiudo la maschera e riapro il record in visualizzazione la trovo convertita in inglese.

    saluti

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    vorrei vedere anche la query di inserimento

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    8
    Salve,

    questa dovrebbe essere la riga in cui si inserisce la data nel campo.

    <TEXTAREA NAME="Data_prevista" tabindex="6" ROWS="1" COLS="16" MAXLENGTH="10" onchange="CheckFields('data','Data_prevista');" CLASS="CampoDS"><%=vDati(16)%></TEXTAREA>

    penso che questa sia la query

    <SCRIPT LANGUAGE="javascript">
    <!--
    //
    function CheckFields(dato,ID) {

    if (dato=='data') {
    valore="";
    d="";
    if (ID=='Data_chiamata') {
    valore=document.FRM.Data_chiamata.value; }
    if (ID=='Data_prevista') {
    valore=document.FRM.Data_prevista.value; }
    if (ID=='Data_Sollecito') {
    valore=document.FRM.Data_Sollecito.value; }
    if (ID=='Data_conclusione_riparazione') {
    valore=document.FRM.Data_conclusione_riparazione.v alue; }
    // alert(ID+valore);
    // Verifica e formattazione data
    if (valore.length > 10) {
    d=valore.substring(0,10);}
    else {
    d=valore;}
    // alert(d);
    if ((d.match("[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]")==null) & (d.match("[0-9][0-9].[0-9][0-9].[0-9][0-9]")==null)) {
    alert("E\' stata immessa una data non valida");
    document.getElementById(ID).style.color="Red";
    errore=0;//return(0);//window.alert('E\' stata immessa una data non valida');
    }
    else {
    document.getElementById(ID).style.color="Black";
    }
    //adatta l'anno
    day=d.substring(0,2);
    // alert(day);
    month=d.substring(3,5);
    // alert(month);
    year=d.substring(6,10);
    if (year.match("[0-9][0-9][0-9][0-9]")) {
    year=year.substring(2,4);}
    else {
    if (year.match("[0-9][0-9][0-9]")) {
    year=year.substring(1,4);}
    else {
    year=year.substring(0,2);
    }
    }
    valore = day + "/" + month + "/" + year;

    if (ID=='Data_chiamata') {
    document.FRM.Data_chiamata.value = valore;}
    if (ID=='Data_prevista') {
    document.FRM.Data_prevista.value = valore;}
    if (ID=='Data_Sollecito') {
    document.FRM.Data_Sollecito.value = valore; }
    if (ID=='Data_conclusione_riparazione') {
    document.FRM.Data_conclusione_riparazione.value = valore;
    document.FRM.Evaso.checked = 'CHECKED';
    }
    valore="";
    mostra();
    }

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    no, la query è quella dove dice INSERT se inserisce un nuovo record.
    oppure UPDATE se modifica un record esistente.
    dovrebbe trovarsi nel file specificato nell'action del form

    ricorda di raccogliere sempre il codice postato sul forum all'interno del tag [CODE][/CODE], grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    8
    spero siano queste le righe

    codice:
    ' ' qui carica i dati dal form 
    
    	vDati(4)=Request.Form("IDFornitore")
    	vDati(2)=Request.Form("Identificativo_manutentore")
    	vDati(18)=Request.Form("sigla_ced")
    	vDati(20)=Request.Form("Tecnico_Interno")
    	vDati(21)=Request.Form("Data_chiamata")
    	vDati(3)=Request.Form("Data_Sollecito")
    	vDati(16)=Request.Form("Data_prevista")
    	vDati(11)=Request.Form("Data_conclusione_riparazione")
    
    ' valuta l'input di Evaso/Non Evaso
    if Request.Form("Evaso") then
    	vDati(19)=TRUE
    else
    	vDati(19)=FALSE
    end if
    
    ' fine della lettura dati  ricevuti nel post del form
    	'qui ho tutti i dati a posto nel vDati se non nulli 
    
    	'devo preparare il db per l'inserzione dei dati
    	'apre il db
    	dim strConn,Conn
    	Set Conn=Server.CreateObject("ADODB.Connection")
    	strConn= "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../fpdb/manu2012.mdb")
    	Conn.Open strConn
    
    	' fase di aggiornamento
    	dim sqlUpd,rsUpd,rsId,rsIdF,n_IDF,sqlFDati,rsIdC,n_IDC,sqlCDati,rsIdTI,n_IDTI,sqlTIDati
    saluti

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    dovrebbe essere qualche riga più sotto
    e mi pare si chiami sqlUpd
    quindi una cosa tipo sqlUpd = " UPDATE nometabella ecc ecc "

    anzi posta anche rsUpd

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    8
    spero che sia la parte giusta

    codice:
    	preparazione aggiornamento
    	set rsUpd=server.CreateObject("ADODB.Recordset")
    			sqlUpd="select * from RIPARAZIONE where Numero_richiesta = " & Id_Dato
    			rsUpd.Open sqlUpd,Conn,3,3
    
    	'		for i = 2 to 3
    	'			'scandisce il form 
    	'			'l'id è gia' stato calcolato quindi ce l'ho di sicuro
    	'			'sia in fase di inserzione che di aggiornamento
    	'				rsUpd(i)=vDati(i)
    	'		next
    					rsUpd(10)=vDati(10)
    					rsUpd(4)=vDati(4)
    					rsUpd(2)=vDati(2)
    					rsUpd(18)=vDati(18)	
    					rsUpd(20)=vDati(20)
    if len(vDati(21))>	0  then	 rsUpd(21)=vDati(21) 	end if
    if len(vDati(16))>	0  then  rsUpd(16)=vDati(16)	 	end if
    if len(vDati(3))>	0  then  rsUpd(3)=vDati(3)	 	end if
    if len(vDati(11))>	0  then  rsUpd(11)=vDati(11)	 	end if
    					rsUpd(19)=vDati(19)	
    
    			rsUpd.Update
    '			rsUpd.Close()
    
    	%>
    saluti

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    le variabili interessate mi sembra siabo queste...

    prova a modificare queste righe
    codice:
    if len(vDati(21))>	0  then	 rsUpd(21)=vDati(21) 		end if
    if len(vDati(16))>	0  then  rsUpd(16)=vDati(16)	 	end if
    if len(vDati(3))>	0  then  rsUpd(3)=vDati(3)	 	end if
    if len(vDati(11))>	0  then  rsUpd(11)=vDati(11)	 	end if
    così:
    codice:
    if len(vDati(21))>	0  then	 rsUpd(21)=format(#"& vDati(21) &"#,'mm/dd/yyyy')	end if
    if len(vDati(16))>	0  then  rsUpd(16)=format(#"& vDati(16)	&"#,'mm/dd/yyyy') 	end if
    if len(vDati(3))>	0  then  rsUpd(3)= format(#"& vDati(3)  &"#,'mm/dd/yyyy')	end if
    if len(vDati(11))>	0  then  rsUpd(11)=format(#"& vDati(11) &"#,'mm/dd/yyyy') 	end if
    e vedi se scrive correttamente la data "in italiano"
    (proprio dentro al db intendo).
    questo vale per quando fai l'aggiornamento di un record,
    se necessario poi vediamo per la creazione del nuovo

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.