Results 1 to 9 of 9

Thread: Syntax Error in INSERT INTO statement

  1. #1

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Syntax Error in INSERT INTO statement

    Help this is not new and I know the problem but cant fix it. I am rewriting a program in vb.net and the original Access database has a field name call 'Day' (Reserved Word)

    I want to keep the name as I cannot change the data structure not practical(too many copies about)

    I am using dataset and databinded controls. The following is snippets from the source code.

    VB Code:
    1. Dim stSQL As String = "Select ID,[Day],PilotID Where PilotID=" & PilotID
    2.  
    3.         da = New OleDbDataAdapter(stSQL, pConnection)
    4.         ds.Clear()
    5.  
    6.         Try
    7.             da.Fill(ds, "tblLogbook")
    8.         Catch ex As Exception
    9.  
    10.         End Try

    My controls are binded as such:

    VB Code:
    1. txtPilotID.DataBindings.Add("Value", dbLogbook.ds, "tblLogbook.PilotID")
    2.         txtDay.DataBindings.Add("Value", dbLogbook.ds, "tblLogbook.Day")

    my insertcommand is as follows
    VB Code:
    1. cmdInsert.Connection = FTLDb ' FTLDb is a declared connection object
    2.         cmdInsert.CommandText = "Insert Into tblLogbook (PIlotID,[Day]) Values (@PIlotID,@Day)"
    3.  
    4.         cmdInsert.Parameters.Add(New OleDbParameter("@PIlotID", "PIlotID"))
    5.         cmdInsert.Parameters.Add(New OleDbParameter("@Day", "[Day]"))
    6.         da.InsertCommand = cmdInsert

    When I call
    VB Code:
    1. da.Update(ds, "tblLogbook")

    I get the error message 'Syntax Error in INSERT INTO statement'
    I know the problem is Day because if I change the name in the database to something else, it works. I am looking for a resolution without changing the datastructure. I know I have to use square brackets but where?
    Last edited by 99pshop; Oct 21st, 2005 at 11:55 AM.

  2. #2
    Software Carpenter dee-u's Avatar
    Join Date
    Feb 2005
    Location
    Pinas
    Posts
    11,127

    Re: Syntax Error in INSERT INTO statement

    Try this... You missed a space...

    VB Code:
    1. cmdInsert.CommandText = "Insert Into tblLogbook (PIlotID,[Day]) Values (@PIlotID,@Day)"
    Regards,


    As a gesture of gratitude please consider rating helpful posts. c",)

    Some stuffs: Mouse Hotkey | Compress file using SQL Server! | WPF - Rounded Combobox | WPF - Notify Icon and Balloon | NetVerser - a WPF chatting system

  3. #3

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Re: Syntax Error in INSERT INTO statement

    Thats not the problem. I do have a space in my code. The problem lies in the reserve keyword 'Day'

  4. #4
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: Syntax Error in INSERT INTO statement

    I don't use params often (and I never use databindings).. but are you sure you are doing it correctly?

    cmdInsert.Parameters.Add(New OleDbParameter("@PIlotID", "PIlotID"))
    cmdInsert.Parameters.Add(New OleDbParameter("@Day", "[Day]"))

    aren't the params being passed to this new constructor a Name and Value?

    If that is the case, then it would loot to me as though you are passing 2 strings
    shouldn't the second param be the ACTUAL value, not a string of the field name?

    like
    cmdInsert.Parameters.Add(New OleDbParameter("@PIlotID", 12345))

    or am I missing something in the databinging mix?

  5. #5

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Re: Syntax Error in INSERT INTO statement

    This is a full listing of my insert statement, I have tried the abriviated version as above too. I just call the sub which is part of a class.

    VB Code:
    1. Private Sub lInsertCommand()
    2.         cmdInsert.Connection = FTLDb
    3.         cmdInsert.CommandText = "Insert Into tblLogbook (PilotID,acDate,Copilot,Capacity,TakeOff,Land,[Day],Night,Instrument,Route,Reg,DutyID,Duty,AcType, " & _
    4.          "Remark,DutyStart,EndDuty,RestStart,Landings,RestEnd) Values (@PilotID,@acDate,@Copilot,@Capacity,@TakeOff,@Land,@Day,@NIght,@Instrument,@Route,@Reg,@DutyID,@Duty,@AcType, " & _
    5.          "@Remark,@DutyStart,@EndDuty,@RestStart,@Landings,@RestEnd)"
    6.  
    7.         cmdInsert.Parameters.Add(New OleDbParameter("@PilotID", "PilotID"))
    8.         cmdInsert.Parameters.Add(New OleDbParameter("@acDate", "acDate"))
    9.         cmdInsert.Parameters.Add(New OleDbParameter("@Copilot", "Copilot"))
    10.         cmdInsert.Parameters.Add(New OleDbParameter("@Capacity", "Capacity"))
    11.         cmdInsert.Parameters.Add(New OleDbParameter("@TakeOff", "TakeOff"))
    12.         cmdInsert.Parameters.Add(New OleDbParameter("@Land", "Land"))
    13.         cmdInsert.Parameters.Add(New OleDbParameter("@Day", "[Day]"))
    14.         cmdInsert.Parameters.Add(New OleDbParameter("@Night", "Night"))
    15.         cmdInsert.Parameters.Add(New OleDbParameter("@Instrument", "Instrument"))
    16.         cmdInsert.Parameters.Add(New OleDbParameter("@Route", "Route"))
    17.         cmdInsert.Parameters.Add(New OleDbParameter("@Reg", "Reg"))
    18.         cmdInsert.Parameters.Add(New OleDbParameter("@DutyID", "DutyID"))
    19.         cmdInsert.Parameters.Add(New OleDbParameter("@Duty", "Duty"))
    20.         cmdInsert.Parameters.Add(New OleDbParameter("@AcType", "AcType"))
    21.         cmdInsert.Parameters.Add(New OleDbParameter("@Remark", "Remark"))
    22.         cmdInsert.Parameters.Add(New OleDbParameter("@DutyStart", "DutyStart"))
    23.         cmdInsert.Parameters.Add(New OleDbParameter("@EndDuty", "EndDuty"))
    24.         cmdInsert.Parameters.Add(New OleDbParameter("@RestStart", "RestStart"))
    25.         cmdInsert.Parameters.Add(New OleDbParameter("@Landings", "Landings"))
    26.         cmdInsert.Parameters.Add(New OleDbParameter("@RestEnd", "RestEnd"))
    27.         cmdInsert.Parameters.Add(New OleDbParameter("@MultiEngine", "MultiEngine"))
    28.         cmdInsert.Parameters.Add(New OleDbParameter("@Export", "Export"))
    29.         da.InsertCommand = cmdInsert
    30.     End Sub

  6. #6

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Re: Syntax Error in INSERT INTO statement

    The first is the param name and the second is the object name as string.

    If I take out the entry with the 'Day' value, it works fine. So there lies my problem.

  7. #7
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: Syntax Error in INSERT INTO statement

    did you try to remove the brackets for just the parameter setting?

    cmdInsert.Parameters.Add(New OleDbParameter("@PIlotID", "PIlotID"))
    cmdInsert.Parameters.Add(New OleDbParameter("@Day", "Day"))

    Im just guessing right now, like I said I don't use this stuff very often

  8. #8

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Re: Syntax Error in INSERT INTO statement

    Yes, tried. I think I will recode and just add the values normally. databinding has a lot of funnies I think. I'm not very used to it either.

    Cheer

  9. #9

    Thread Starter
    Member
    Join Date
    May 2005
    Posts
    54

    Resolved Re: Syntax Error in INSERT INTO statement

    Okay got it now. have removed the brackets from the source column since its specified in the insert startment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width