[C#/SQL Compact] There was an error parsing the query*

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb reeds de hele middag gedebugged, maar kan er gewoon niet bij wat hier nou fout gaat.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
            string insertLine =
            "insert into ComposedHistory (AccountID, Ticket, TicketDate, Action, " +
            "Pair, Units, Open, Close, PIP, PL, Slippage, SlippagePL) " +
            "values (@accountID, @ticket, @ticketDate, @action, @pair, @units, @open " +
            "@close, @PIP, @PL, @slippage, @slippagePL)";

            andere parameters..

            commandInsertLine.Parameters.Add("@open", SqlDbType.Decimal).Value = 1.555;

            andere parameters..

            commandInsertLine.ExecuteNonQuery();


Database veld; naam / type / grootte / nullable / unique / primary key
Open numeric 9 Yes No No

De numeric is ingesteld op precision 18 / scale 4.

Ik krijg een exception met het bericht:
There was an error parsing the query. [ Token line number = 1,Token line offset = 82,Token in error = Open ]

Native error 25501; weinig nuttig.
HValue: -2147217900 . Heb ik ook niks op kunnen vinden.

Ik doe in de andere method bijna precies hetzelfde met wat andere veld namen en een andere tabel, daar werkt het vlekkeloos.

edit: vergeten titel te kiezen :/

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:23
Als je de query eens print naar het scherm / console, en dan goed bekijkt, of gebruik maakt van een profiler , dan zal je zien dat je een komma mist in je argumenten lijst.
(Dat kon je ook een beetje opmaken uit de fout die je kreeg)

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:23
Ok, aangezien het blijkt dat die vergeten komma slechts een type-foutje is.

Welk DBMS gebruik je ?
Ben je zeker dat je de SqlClient namespace moet gebruiken ? Die foutmeldingen lijken mij niet echt sql server dingen te zijn.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik Sql Compact, met de SqlServerCe namespace. Het rare is dat ik precies hetzelfde in een andere method doe, maar dan op een andere table met andere velden, maar in dezelfde database; dat werkt perfect.

[ Voor 4% gewijzigd door Verwijderd op 29-02-2008 17:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Zitten er niet stiekem gereserveerde keywords in je kolomnamen?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:23
Close & Open lijken me goede kandidaten idd :)
(ivm cursors)

escapen met [ en ] dus

[ Voor 17% gewijzigd door whoami op 29-02-2008 17:48 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
.

[ Voor 99% gewijzigd door _js_ op 29-02-2008 17:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heel erg bedankt, volgens mij zijn Open en Close inderdaad gereserveerde kolomnamen. Ik had hier wel half aan gedacht tijdens het debuggen, maar ik het het niet getest. Een beetje stom natuurlijk.

Wel raar dat de server explorer het toelaat om kolommen met deze namen aan te maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 29 februari 2008 @ 17:55:
Heel erg bedankt, volgens mij zijn Open en Close inderdaad gereserveerde kolomnamen. Ik had hier wel half aan gedacht tijdens het debuggen, maar ik het het niet getest. Een beetje stom natuurlijk.

Wel raar dat de server explorer het toelaat om kolommen met deze namen aan te maken.
Niet raar, je kan ze toch gebruiken? (indien escaped).
Volgens mij als je de tabel aanmaakt en daarna in Sql Enterprise Manager (Workbench weet ik niet), dan worden ze daar ook als escaped velden getoond.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je hebt helemaal gelijk, :)

Acties:
  • 0 Henk 'm!

Verwijderd

Je mist overigens ook een komma tussen @Open en @Close...

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Sql Compact versies OUDER dan v3.5 gebruiken "" om namen te omgeven, dus "Table" ipv [table]
SqlCompact versie 3.5 heeft eindelijk dezelfde delimiter als normale sqlserver: []

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com

Pagina: 1