[Risolto] togliere valore da campo data in odb con Dialogo

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Avatar utente
DeutscherLinux
Messaggi: 26
Iscritto il: giovedì 9 ottobre 2014, 23:01

[Risolto] togliere valore da campo data in odb con Dialogo

Messaggio da DeutscherLinux »

Salve a tutti!

Di seguito riporto una parte del mio listato Star Basic in cui uso comandi sql update.

Sono riuscito a scrivere nel campo data il valore di merito del giorno corrente; fin qui nessun problema.
Mi sono poi chiesto: se si scrivesse la data di inattivazione nel record sbagliato, come dovrebbe essere la sintassi sql update per togliere il valore della data dal campo di tipo data con le istruzioni sql?

Sono diventato matto :ucrazy:

Non riesco a capire come si debba scrivere il codice con la sintassi corretta per ottenere di nuovo l'attivazione di un record inattivato per errore, togliendo il valore data.....

La variabile usata è: sDataInattivApp

Ecco il mio listato.

Codice: Seleziona tutto

       '
        sDataInattivApp = ""
        If len(sDataInattiv) <> 0 Then
           sDataInattivApp = Dtos(sDataInattiv)
        Else 
           sDataInattivApp = "0000-00-00" ' space(10)   ' sDataInattiv  '  IsNull() ' "    -  -  "
        End If               'aaaa-mm-gg'
        '
        msgbox sDataInattiv & " " & sDataInattivApp & " " & len(sDataInattiv) & " " & len(sDataInattivApp)
        '
        SQLXC = ""
        SQLXC = "UPDATE ""TPadrone"" SET "
        SQLXC = SQLXC & """Nominativo""='" & sNominativo & "', ""Indirizzo""='" & sIndirizzo & "', ""IDCitta""='" & nIDCitta & "', "
        SQLXC = SQLXC & """Telefono""='" & sTelefono & "', ""Fax""='" & sFax & "', ""Cellulare""='" & sCellulare & "', ""EMail""='" & sEMail & "', ""PartIVA""='" & sPartIVA & "', "
        SQLXC = SQLXC & """CodFisc""='" & sCodFisc & "', ""Facebook""='" & sFacebook & "', ""Twitter""='" & sTwitter & "', ""GooglePlus""='" & sGooglePlus & "', ""Note""='" & sNote & "', "
        SQLXC = SQLXC & """DataAgg""='" & sDataAggApp
        '
        'If len(sDataInattiv) <> 0 Then
            SQLXC = SQLXC & "', ""DataInattiv""='" & sDataInattivApp & "'"
        'Else
        '    SQLXC = SQLXC & "', ""DataInattiv""=" & sDataInattivApp '    -  -  '"
        'End If                                  'aaaa-mm-gg'
        '
        SQLXC = SQLXC & " WHERE ""IDPadrone""=" & nRecordApp
        '
        msgbox SQLXC
        '
        oStat = oDBConn.createStatement()
        oStat.executeUpDate(SQLXC)
        '
Ecco anche la Funzione Dtos() richiamata dal mio codice.

Codice: Seleziona tutto

Public Function Dtos(Data)
    Datas = Mid(Data, 7, 4) + "-" + Mid(Data, 4, 2) + "-" + Mid(Data, 1, 2)
    Dtos = Datas
End function
Aiuto!!!!! :knock:

Grazie in anticipo

Roberto
Ultima modifica di DeutscherLinux il venerdì 19 dicembre 2014, 16:15, modificato 2 volte in totale.
DeutscherLinux
Apache OpenOffice 4.1.1
su Ubuntu 14.04 LTS 64 Bit
su Windows 7 Pro 64 Bit
Avatar utente
DeutscherLinux
Messaggi: 26
Iscritto il: giovedì 9 ottobre 2014, 23:01

Re: togliere valore da campo data in odb con Dialogo

Messaggio da DeutscherLinux »

Salve a tutti :mrgreen:

Mi auto rispondo....
In sostanza per togliere il valore dal campo data della tabella bisogna assegnargli il valore null.

Ho usato la variabile vNull per raggiungere lo scopo.
Di seguito il codice corretto per gestire l'update con la scrittura o la pulizia tramite il valore null del campo data:

Global vNull As Variant
vNull = "NULL"
'
sDataInattivApp = ""
If Len(sDataInattiv) <> 0 Then
sDataInattivApp = Dtos(sDataInattiv)
End If
'
SQLXC = ""
SQLXC = "UPDATE ""TPadrone"" SET "
SQLXC = SQLXC & """Nominativo""='" & sNominativo & "', ""Indirizzo""='" & sIndirizzo & "', ""IDCitta""='" & nIDCitta & "', "
SQLXC = SQLXC & """Telefono""='" & sTelefono & "', ""Fax""='" & sFax & "', ""Cellulare""='" & sCellulare & "', ""EMail""='" & sEMail & "', ""PartIVA""='" & sPartIVA & "', "
SQLXC = SQLXC & """CodFisc""='" & sCodFisc & "', ""Facebook""='" & sFacebook & "', ""Twitter""='" & sTwitter & "', ""GooglePlus""='" & sGooglePlus & "', ""Note""='" & sNote & "', "
SQLXC = SQLXC & """DataAgg""='" & sDataAggApp
'
If Len(sDataInattiv) <> 0 Then
SQLXC = SQLXC & "', ""DataInattiv""='" & sDataInattivApp & "'"
Else
SQLXC = SQLXC & "', ""DataInattiv""=" & vNull
End If
'
SQLXC = SQLXC & " WHERE ""IDPadrone""=" & nRecordApp
'
oStat = oDBConn.createStatement()
oStat.executeUpDate(SQLXC)


Colgo l'occasione per fare a tutti i migliori Auguri di Natale e di Buon Anno Nuovo :D

Ciao
Roberto
DeutscherLinux
Apache OpenOffice 4.1.1
su Ubuntu 14.04 LTS 64 Bit
su Windows 7 Pro 64 Bit
Rispondi