Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    40

    Insert into su sql server con vbasic

    Programma in VBASIC, che si collega con database sql server, se do la stringa in ambiente sql-server funziona perfettamente, mentre sul codice seguente (in ambiente vbasic) non funziona.
    cerco di eseguire questo codice:

    mia_data = Str(Date) & " " & Trim(Str(Hour(Now))) & ":" & Trim(Minute(Now)) & ":" & Trim(Str(Second(Now))) & ":000"
    cmd.CommandText = "insert into new_chatters values('oggi','ogginick','1'," & mia_data & " , null, null)"
    Set rs = cmd.Execute

    mi da un run time error, sintassi errata sul 9. (che dovrebbe essere l'orario), cioè non gli piace la data seguita dall'orario.

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    come hai dichiarato il campo che deve contenere la data nella tabella SQL?

    se è di tipo DateTime prova così:

    codice:
    cmd.CommandText = "insert into new_chatters values('oggi','ogginick','1',#" & mia_data & "# , null, null)"
    altrimenti prova a togliere i 3 zeri qui:

    mia_data = Str(Date) & " " & Trim(Str(Hour(Now))) & ":" & Trim(Minute(Now)) & ":" & Trim(Str(Second(Now))) & ":000"

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    40

    non VA, accidenti non va

    Allora ho provato con le due soluzioni, ma non va.
    E' come se lo spazio tra la data e l'orario gli desse fastidio.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271
    Perchè non hai messo il nome del campo?

    strSQL = "INSERT INTO Anagrafica (CodFiscale,Cognome) VALUES (' " & iCod & " ',' " & iCognome & "')"

    Questa è la struttura Insert into NomeTabella (Nome dei campi)Values(valori che vuoi inserire)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    40

    per quel che ne so

    Per quanto ne sappia, il nome dei campi è facoltativo, nel senso che puoi non elencarli, comunque non si sa mai, ma il problema è di sintassi, infatti se invece di assegnare un valore di data (che contiene sia la data che l'ora, il campo è tipo DateTime) assegno una semplice data il tutto fila liscio e assegna i valori ai campi nell'ordine in cui vengono posti i valori.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271
    Che i campi siano facoltativi ho i miei dubbi ,perchè se io per
    esempio ho 4campi(nome,cognome,indirizzo,città), ma voglio inserire nel mio database 2 valori quelli di nome e cognome certo che devo
    specificare questi 2 valori dove deve inserirli se no come fa a saperlo?
    Quindi ti funzionerebbe solo così!!Giusto

    cmd.CommandText = "insert into new_chatters values('" & mia_data & '")"

  7. #7
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    allora prova a fare questo
    codice:
    mia_data = CDate(Str(Date) & " " & Trim(Str(Hour(Now))) & ":" & Trim(Minute(Now)) & ":" & Trim(Str(Second(Now))) & ":000")
    e poi nella stringa SQl togli i #:

    codice:
    cmd.CommandText = "insert into new_chatters values('oggi','ogginick','1'," & mia_data & ", null, null)"
    Al limite prova a mettere un break-poit sulla riga di codice del comando sql, appena si interrompe l'esecuzione dai un colpo di F8 e nella finestraimmediata digita:

    ? strSQL e dai invio

    in questo modo puoi vedere i valori che vengono passati a SQL. Se hai uno strumento tipo il QUery Analyzer di SQL, copia quella stringa ed eseguila direttamente sulla tabella e vedi se ci sono errori di sintassi.

    Ciao

  8. #8
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da xit
    Che i campi siano facoltativi ho i miei dubbi ,perchè se io per
    esempio ho 4campi(nome,cognome,indirizzo,città), ma voglio inserire nel mio database 2 valori quelli di nome e cognome certo che devo
    specificare questi 2 valori dove deve inserirli se no come fa a saperlo?
    Quindi ti funzionerebbe solo così!!Giusto

    cmd.CommandText = "insert into new_chatters values('" & mia_data & '")"
    quello che dici tu è vero ma se specifichi un valore per ogni campo della tabella allora diventano facoltativi, l'importante è rispettare l'ordine dei campi ed includerli tutti.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.