Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    150

    [VB6] Problemi di variabili e valori NULL

    Allora vi espongo subito il problemone ho 1 db sul quale lancio la seguente interrogazione :

    Set RS = Connessione.Execute( "SELECT MAX(NTransazione) AS Numero" & _
    & " FROM Movimenti")

    Adesso se la tabella è vuota RS.fields("Numero") assume un valore NULL e quando effettuo la seguente istruzione mi chiama errore :

    Totale = RS.fields("Numero") + 1

    dicendomi "INVALID USE OF NULL" come posso risolvere il problema ???
    ( Ho provato in vari modi ma nn sono riuscito a risolvere ).


    grazie molto ciaooooooooo
    Carlo Carbone

  2. #2
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    Hai provato a controllare prima che il recordset non sia vuoto?

    es.:
    rs.Open()
    if not rs.EOF then

    Totale = RS.fields("Numero") + 1

    end if

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    150
    Non va ho provato ti posto il codice

    codice:
       Conn.Open
       Conn.Execute "USE Thermocanal"
       Set RecSet = Conn.Execute(" SELECT MAX(NTrans) AS Numero" _
                               & " FROM Movimenti")
       
       If RecSet.EOF Then
          AggiornaNTransazione = 1
       Else
          AggiornaNTransazione = RecSet.Fields("Numero") + 1
       End If
    
       RecSet.Close
       Conn.Close
       Set RecSet = Nothing
    Carlo Carbone

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    150
    CI SONO RIUSCITO MA CON UNA DOPPIA QUERY KE SINCERAMENTE NN MI PIACE PROPRIO TROPPO POCO OTTIMIZZATO ECCO IL CODICE :

    codice:
    Function AggiornaNTransazione(ByVal Conn As ADODB.Connection) As Integer
    
       Conn.Open
       Conn.Execute "USE Thermocanal"
       Set RecSet = Conn.Execute(" SELECT NTrans" _
                               & " FROM Movimenti")
       
       If RecSet.EOF Then
          AggiornaNTransazione = 1
       Else
          Set RecSet = Conn.Execute(" SELECT MAX(NTrans) As Numero" _
                                  & " FROM Movimenti")
          AggiornaNTransazione = RecSet.Fields("Numero") + 1
          
       End If
       
       RecSet.Close
       Conn.Close
       Set RecSet = Nothing
       
    End Function
    P.S.:Un altro problema ke dovrei risolvere riguarda i campi stringa ke passo al DB se ad esempio provo a inserire una parola apostyrofata tipo "l'altalena " il programma mi da errore sulla stringa SQL in quanto sorgono problemi le virgolette che aprono la sintassi del codice come posso fare ???
    Carlo Carbone

  5. #5
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    Originariamente inviato da Carlo1984
    Non va ho provato ti posto il codice

    codice:
       Conn.Open
       Conn.Execute "USE Thermocanal"
       Set RecSet = Conn.Execute(" SELECT MAX(NTrans) AS Numero" _
                               & " FROM Movimenti")
       
       If RecSet.EOF Then
          AggiornaNTransazione = 1
       Else
          AggiornaNTransazione = RecSet.Fields("Numero") + 1
       End If
    
       RecSet.Close
       Conn.Close
       Set RecSet = Nothing
    Prova a utilizzare questo:
    codice:
       If IsNull(recset("Numero")) Then
          aggiornaNTransazione = 1
       Else
          aggiornaNTransazione = recset("Numero") + 1
       End If

  6. #6
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    P.S.:Un altro problema ke dovrei risolvere riguarda i campi stringa ke passo al DB se ad esempio provo a inserire una parola apostyrofata tipo "l'altalena " il programma mi da errore sulla stringa SQL in quanto sorgono problemi le virgolette che aprono la sintassi del codice come posso fare ???
    esempio:

    codice:
    nome="l'altalena"
    nome=replace(nome,"'","''")
    la sintassi è:

    string = replace( string , valoreCercato , valoreDiRimpiazzo )

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.