Italian Sql Insert

Nikeddy

Active Member
Licensed User
Longtime User
Salve a tutti

ho creato una maschera semplice con 3 edittext, 1 spinner e due variabili testo, vorrei che i valori del form siano inseriti nel db sql. ho provato ma non riesco, dove sbaglio?

B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES (" & EditText7.text & "," & EditText8.text & ", "& scassabanca &", "& sentratauscita&","& Spinner3.GetItem " & EditText9.text & ")"
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES (" & EditText7.text & "," & EditText8.text & ", "& scassabanca &", "& sentratauscita&","& Spinner3.GetItem " & EditText9.text & ")"
 

MarcoRome

Expert
Licensed User
Longtime User
Salve a tutti

ho creato una maschera semplice con 3 edittext, 1 spinner e due variabili testo, vorrei che i valori del form siano inseriti nel db sql. ho provato ma non riesco, dove sbaglio?

B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES (" & EditText7.text & "," & EditText8.text & ", "& scassabanca &", "& sentratauscita&","& Spinner3.GetItem " & EditText9.text & ")"
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES (" & EditText7.text & "," & EditText8.text & ", "& scassabanca &", "& sentratauscita&","& Spinner3.GetItem " & EditText9.text & ")"

Allora, guarda sempre la finestra ( a dx ) dei log ..li avrai sempre il tipo di errore, nel tuo caso stai inserendo la data, descrizione ( campi di testo ) senza gli apici e ti sei dimenticato qualche virgola. L'istruzione corretta è ( ovviamente verifica meglio, ma adesso sai l'errore dov'è):

B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', "& scassabanca &", "& sentratauscita&",'"& Spinner3.GetItem "', & EditText9.text & ")"
 

Nikeddy

Active Member
Licensed User
Longtime User
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', "& scassaobanca &", "& entrata &",'"& Spinner3.GetItem "', "& EditText9.text & ")"

nulla...
 

Nikeddy

Active Member
Licensed User
Longtime User
mi da problemi alla parentesi, ma infatti ne manca una in chiusura, ma non so come fare.
 

MarcoRome

Expert
Licensed User
Longtime User
Ti sei dimentica uin parametro su ExecuteRemoteQuery

B4X:
ExecuteRemoteQuery(Query, "nome")

oppure

B4X:
ExecuteRemoteQuery(Query, "")
 

sirjo66

Well-Known Member
Licensed User
Longtime User
stai facendo confusione con gli apici e le parentesi

prova con:
B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '"& scassabanca & "', '" & entrata & "','" & Spinner3.GetItem "', " & EditText9.text & ")")

ma sicuramente non funzionerà perchè non hai detto che vale in quel momento EditText7.text e quindi non so se contiene un valore valido che deve ssere nel formato yyyy-mm-dd
non hai detto nemmeno cosa c'è dentro EditText9.text

inoltre il tutto non funzionerà comunque quando dentro alle caselle di testo c'è una stringa che contiene l'apice

Sergio
 

Star-Dust

Expert
Licensed User
Longtime User
Piccola modifica per evitare ulteriori errori di runtime:

B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text.Replace("'","''") & "', "& scassabanca &", "& sentratauscita&",'"& Spinner3.GetItem "', & EditText9.text & ")"

Ti consiglio di aggiungere sempre .Replace("'","''") a tutti i campi che sono stringa, cosi se contengono apici non interferiscano con gli apici usati per delimitare i campi della query. ;)

Sottoscrivo sulla questione della data, quel campo non si capisce in che formato sia, String, Long(tick) ecc...
 

sirjo66

Well-Known Member
Licensed User
Longtime User
@Star-Dust
la query è errata, se guardi bene anche la variabile scassabanca è di tipo testo e quindi servono gli apici e il Replace e poi hai dimenticato le virgolette prima del campo EditText9.Text
 

MarcoRome

Expert
Licensed User
Longtime User
Nike puoi riportare l'errore che hai nella finestra log ? ( cosi evitiamo di andare per tentativi )
 

Star-Dust

Expert
Licensed User
Longtime User
@Star-Dust
la query è errata, se guardi bene anche la variabile scassabanca è di tipo testo e quindi servono gli apici e il Replace e poi hai dimenticato le virgolette prima del campo EditText9.Text

Non potendo sapere se CassaBanca sia Stringa o un Valore Byte che oscilla fra 0 e 1 e lo stesso per gli altri campi, come Data, Categoria ecc... Quindi ho aggiunto la frase che avrebbe sarebbe utile aggiungere il Replace a tutti i campi stinga, cosi da mettermi al sicuro ;).

Non ho controllato la sintassi della query perché ho solo ricopiato quella che hai scritto tu nel post precedente, dove in effetti ti sei scordato l'apice a fine di EditText9.Text. :):) Ma io sono andato sulla fiducia, avendolo scritto tu ero certo che andava bene. :p:p
 

sirjo66

Well-Known Member
Licensed User
Longtime User
mmmmm se guardi il mio post #7 mi sembra che gli apici andavano bene, ma può essere che mi sbagli

eccoti la struttura del database:

rwIG2eZ.jpg
 

Nikeddy

Active Member
Licensed User
Longtime User
questo l'errore log:
B4A version: 6.50
Parsing code. Error
Error parsing program.
Error description: Syntax error.
Occurred on line: 296 (Main)
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text.Replace("'","''") & "', "& scassaobanca &", "& entrata&",'"& Spinner3.GetItem "', & EditText9.text & ")"


scassaobanca (se e' un pagamento via cassa o via banca) ed entrata sono due variabili stringa
 

Nikeddy

Active Member
Licensed User
Longtime User
ho provato a sistemare gli apici:
B4A version: 6.50
Parsing code. Error
Error parsing program.
Error description: Invalid number of parentheses.
Occurred on line: 296 (Main)
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text.Replace("'","''") & "', "& scassaobanca &", "& entrata &",'"& Spinner3.GetItem "','" & EditText9.text & "')"



questa la maschera:
WUeWO

http://imgur.com/a/WUeWO



questa la query usata:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text.Replace("'","''") & "', "& scassaobanca &", "& entrata &",'"& Spinner3.GetItem "','" & EditText9.text & "')"
 

sirjo66

Well-Known Member
Licensed User
Longtime User
è ovvio che non ti funzioni, manca ancora la parentesi finale e gli apici che ti ho detto mancavano
 

Nikeddy

Active Member
Licensed User
Longtime User
ho provato, mi da ugualmente errore:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '" & scassaobanca & "', '" & entrata & "','" & Spinner3.GetItem "', " & EditText9.text & ")")
 

Star-Dust

Expert
Licensed User
Longtime User
Prova questo

B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '" & scassaobanca & "', '" & entrata & "','" & Spinner3.GetItem & "', " & EditText9.text & ")")
 

Nikeddy

Active Member
Licensed User
Longtime User
B4A version: 6.50
Parsing code. (0.04s)
Compiling code. Error
Error compiling program.
Error description: Syntax error (missing parameter).
Occurred on line: 194
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '" & scassaobanca & "', '" & entrata & "','" & Spinner3.GetItem & "', " & EditText9.text & ")")
Word: )
 

Star-Dust

Expert
Licensed User
Longtime User
L'errore è diverso, manca un parametro Il JobName

Sintassi
ExecuteRemoteQuery(Query,JobName)


B4X:
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '" & scassaobanca & "', '" & entrata & "','" & Spinner3.GetItem & "', " & EditText9.text & ")", JobName)

ovviamente devi sostituire JobName con la stringa che contiene l'identificatore del job

Suppongo che usi questo codice per la funzione:

B4X:
Sub ExecuteRemoteQuery(Query As String, JobName As String)
    Dim job As HttpJob
    job.Initialize(JobName, Me)
    job.PostMultipart("http://www.xxxx.eu/yyyy/dbpwtestmultipart.php", CreateMap("pw":marco), Null )
End Sub

Sub JobDone(Job As HttpJob)
    ProgressDialogHide
    If Job.Success Then
    Dim res As String
        res = Job.GetString
        Log("Response from server: " & res)
    Else
         Log( Job.ErrorMessage)
     End If
    Job.Release
End Sub
 
Last edited:

Nikeddy

Active Member
Licensed User
Longtime User
ho questo:

Sub Fetchinserimento
Dim scassaobanca As String
If RadioButton1.Checked = True Then
scassaobanca = "cassa"
Else
scassaobanca ="banca"
End If
entrata =""
entrata = "entrata"
ExecuteRemoteQuery("INSERT INTO librocontabile (data,descrizione,cassabanca,entratauscita,categoria,euro) VALUES ('" & EditText7.text & "','" & EditText8.text & "', '" & scassaobanca & "', '" & entrata & "','" & Spinner3.GetItem & "', " & EditText9.text & ")", JobDone)
End Sub


e poi ho il job

Sub ExecuteRemoteQuery(Query As String, JobName As String)
Dim job As HttpJob
job.Initialize(JobName, Me)
job.PostString("https://www.xxxxx.com/gestionale/executing.php", Query)
End Sub

Sub JobDone(Job As HttpJob)
ProgressDialogHide
If Job.Success Then
Dim res As String
res = Job.GetString
Log("Response from server: " & res)
Dim parser As JSONParser
parser.Initialize(res)
Select Job.JobName
Case entrate
Dim COUNTRIES As List
COUNTRIES = parser.NextArray
For i = 0 To COUNTRIES.Size - 1
Dim m As Map
m = COUNTRIES.Get(i)
Dim tl As TwoLines
tl.First = m.Get("data")
tl.Second = m.Get("euro")
ListView1.AddTwoLines2(tl.First, tl.Second, tl)
Next
Case uscite
Dim COUNTRIES As List
COUNTRIES = parser.NextArray
For i = 0 To COUNTRIES.Size - 1
Dim m As Map
m = COUNTRIES.Get(i)
Dim tl As TwoLines
tl.First = m.Get("data")
tl.Second = m.Get("euro")
ListView2.AddTwoLines2(tl.First, tl.Second, tl)
Next
End Select
Else
Log(Job.ErrorMessage)
ToastMessageShow("Error: " & Job.ErrorMessage, True)
End If
Job.Release
End Sub
 
Top