Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Syntaxfehler???

Empfohlene Antworten

Veröffentlicht

Mahlzeit!

Ich habe in meinem Programm (Borland c++ Builder) folgendes SQL-Statement:

ADOQuery1->SQL->Add("insert into T1 (Text) values (:Text)");

Beim Kompilieren gibts keine Fehler. Wenn das Statement im laufenden Programm aufgerufen wird heisst es:

Syntaxfehler in INSERT INTO Anweisung...

Ich find die Syntax voll ok! ;)

Habt ihr ne Idee was er will?

Danke,

Woody

Willst du das Wort ":Text" (ohne "") in das Feld "Text" schreiben oder ist das ein Parameter, der durch einen Wert ersetzt wird? Wenn ja, wie lautet der Wert?

Ich mach mal genauere Angaben:

Ich hab eine Access DB mit einer Tabelle. Diese besteht aus einem Autowert als Primärschlüssel und einem Memofeld mit der Bezeichnung Text (es sollen lange Texte in die DB geschrieben werden können).

Mit dem Borland C++ Builder hab ich ein Formular mit einem TMemo und einem TRichEdit erstellt. Für den Zugriff auf Access verwende ich ADO-Komponenten.

Auf Knopfdruck wird der Code von oben ausgeführt, und der Inhalt des entsprechenden Feldes (Memo oder RichEdit, je nach gedrücktem Button) in den Übergabeparameter :Text geschoben.

Dann wird das Statement ausgeführt (ExecSQL)...

und an der Stelle kommt dann von Access/meinem Programm die Exception mit dem Syntaxfehler.

Hilft das weiter?

Gruss,

Woody

Also entweder ist das Feld "Text" kein Memofeld (also ein mehrzeiliges Feld) oder der Text, den du da rein schreibst, befindet sich nicht in Anführungszeichen. Es kann aber auch sein, dass du einfach die falschen Anführungszeichen benutzt, es gibt einfache (') und doppelte ("). Überprüf die drei Sachen mal.

Hab ich alles ausprobiert...

Nichts hilft. Ich kann den Fehler auch immernoch nicht gewollt erzeugen... mal kommt er und mal nicht...

Eigentlich kann das doch nicht sein... *heul* *kopfauftischhau*

HILFE!!!

Woody

Bist du dir sicher, dass es sowohl die Tabelle als auch das Feld gibt, und dass beides so geschrieben wird, wie du es gemacht hast? Und bist du dir absolut sicher, dass die SQL Anweisung falsch ist? Kann es nicht was "drumherum" sein?

Original geschrieben von Woodchuck

Ich hab eine Access DB mit einer Tabelle. Diese besteht aus einem Autowert als Primärschlüssel und einem Memofeld mit der Bezeichnung Text (es sollen lange Texte in die DB geschrieben werden können).

Ich kann mich irren, aber: Memo-Felder sind doch BLOBs? Ich denke, dass du nicht auf diese Weise in ein Blob schreiben kannst. Was aber sicher geht ist ein ADO-Stream.

BLOBs sind keine normalen Felder...

Grüße

Matze

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.