Lungi da me il voler polemizzare, ma ...
Originariamente inviato da gibra
Scusa ma la sintassi che stai usando non mi pare esista.
L'hai inventata tu?
A prescindere che funziona, se non ricordo male, lavoravo con database Access, e, dopo aver creato la query (una simile, che mi faceva il popolamento dei campi di una tabella) sono andato a vedere la sintassi sql e l'ho riportata nel mio progetto visual basic.
Comunque, ho preso quanto da te suggerito (il tuo esempio dell'uso del command e dei paramater)
codice:
sql2 = "INSERT INTO " + Trim(tabe) + " (idpaz,data,idop,stato,idfass,idrif1,idyyrif1,idora) " _ & "values (@idpaz,@data,@idop,@stato,@idfass,@idrif1,@idyyrif1,@idora)"
With cmd
Set par = .CreateParameter("@idpaz", adInteger, adParamInput, vista1.ListItems(i).SubItems(2)) .Parameters.Append par
Set par = .CreateParameter("@data", adDBDate, adParamInput, datacontcodfisc) .Parameters.Append par
Set par = .CreateParameter("@idop", adInteger, adParamInput, vista1.ListItems(i).SubItems(3)) .Parameters.Append par
Set par = .CreateParameter("@stato", adWChar, adParamInput, 20, "0") .Parameters.Append par
Set par = .CreateParameter("@idfass", adInteger, adParamInput, vista1.ListItems(i).SubItems(7))
.Parameters.Append par
Set par = .CreateParameter("@idrif1", adInteger, adParamInput, vista1.ListItems(i).SubItems(4))
.Parameters.Append par
Set par = .CreateParameter("@idyyrif1", adInteger, adParamInput, vista1.ListItems(i).SubItems(5))
.Parameters.Append par
Set par = .CreateParameter("@idora", adInteger, adParamInput, vista1.ListItems(i).SubItems(6))
.Parameters.Append par
End With
cmd.ActiveConnection = dbextfarm 'è la connessione aperta al database cmd.CommandType = adCmdText 'il Tipo di comando, è semplice testo
cmd.CommandText = sql2 'il testo del comando, la nostra query
cmd.Execute
ma il risultato non cambia, sempre 01/01/0001. Vorrà dire che userò il vecchio recordset.
Grazie per il suggerimento.
P.S.: per la cronaca ho provato anche sia type data che datatime, ma nulla.
La cosa strana e che se faccio i due inserimenti 'contemporaneamente' quello con il recordset inserisce la data correttamente
codice:
rsorario.Open Trim(tabella), dbextfarm, adOpenStatic, adLockOptimistic
rsorario.AddNew
With rsorario
.AddNew
!Data = DateValue(vista1.ListItems(i)):!idpaz = vista1.ListItems(i).SubItems(2)
!idop = vista1.ListItems(i).SubItems(3): !stato = 0:
!idfass =vista1.ListItems(i).SubItems(7): !idrif1 = vista1.ListItems(i).SubItems(4):
!idyyrif1 = vista1.ListItems(i).SubItems(5):!idora = vista1.ListItems(i).SubItems(6)
.Update
.Close
End With
Conviene lasciar perdere?
Ancora Grazie