Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    30

    Sql insert into vb.net Access

    Ciao a tutti,
    mi sono appena iscritto al forum per sollevare un problema con il vb.net con connessione con un DB access.
    Ho creato una stringa con una insert per popolare la tabella RNV con i valori che andro' poi a inserire parametrizzati dall'oledbcommand com.
    Il problema nasce quando sposto l'ordine dei vari campi, in questo caso NUMV e PIA, nel DB trovo questi 2 campi invertiti, quando invece lascio l'ordine corretto nel DB è tutto a posto.
    Ho provato anche a utilizzare i "?" all'interno della stringa SQL ma niente.

    Volevo chiedere se anche a voi è capitato una cosa del genere, il comando add, secondo me, dovrebbe riconoscere i vari TAG.

    Andrea


    strSql = "INSERT INTO RNV (DAT , POS , CLI , NUMV , PIA , PRE , ANT , STO , TIP) VALUES " & _
    "(@DAT, @POS, @CLI, @NUMV, @PIA, @PRE, @ANT, @STO, @TIP)"
    com = New OleDb.OleDbCommand(strSql, archivioMese)

    classeRNV = New cRNV(DAT, sDAT, POS, CLI, NUMV, PIA, PRE, ANT, STO, TIP)

    If StrComp(classeRNV.getstrDAT, "") = 0 Then
    com.Parameters.Add("@DAT", OleDbType.Date).Value = DBNull.Value
    Else
    com.Parameters.Add("@DAT", OleDbType.Date).Value = classeRNV.getDAT
    End If
    com.Parameters.Add("@POS", OleDbType.Char, 11).Value = classeRNV.getPOS
    com.Parameters.Add("@CLI", OleDbType.Char, 20).Value = classeRNV.getCLI
    com.Parameters.Add("@PIA", OleDbType.BigInt).Value = classeRNV.getPIA
    com.Parameters.Add("@NUMV", OleDbType.Char, 20).Value = classeRNV.getNUMV

    com.Parameters.Add("@PRE", OleDbType.Double).Value = classeRNV.getPRE
    com.Parameters.Add("@ANT", OleDbType.Double).Value = classeRNV.getANT
    com.Parameters.Add("@STO", OleDbType.Double).Value = classeRNV.getSTO
    com.Parameters.Add("@TIP", OleDbType.Char, 255).Value = classeRNV.getTIP

    archivioMese.Open()
    com.ExecuteNonQuery()
    archivioMese.Close()

  2. #2
    Se non ricordo male .... è proprio così.
    Nel senso che, l'ordine di dichiarazione dei parametri va rispettata al momento della valorizzazione.
    Ma è solo un lontano ricordo ... può darsi che mi sbagli.

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    30
    Grazie ragazzi,
    personalmente pero' mi sembra un brutto limite di questo comando.
    A questo punto i parametri del comando Add dovrebbero essere 2 e non 3, il primo infatti non è recepito, se ci scrivo in tutti i campi @PIPPO il .net non se ne accorge!!!



    Andrea

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474
    Che io sappia, il supporto ai parametri con "segnaposto" (cioè con il nome) è dato dal "driver" ADO.NET di riferimento, quindi in alcuni casi è supportato (come avviene con SQL Server), per cui l'ordine non conta ma fa fede il nome del parametro, mentre in altri casi (come quello di Access) occorre usare "?" e fa fede l'ordine in cui sono specificati, che deve rispettare l'ordine in cui appaiono nello statement SQL.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    30
    Ciao Alka,
    grazie per la spiegazione, già mi immaginavo ci fosse qualche cosa di strano solamente per la gestione con Access!!!!


    Andrea

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.