AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TurboDB - INSERT mit mehr als 14 Parametern geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

TurboDB - INSERT mit mehr als 14 Parametern geht nicht

Ein Thema von Tempdir · begonnen am 10. Mär 2009 · letzter Beitrag vom 10. Mär 2009
Antwort Antwort
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#1

TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 11:00
Datenbank: TurboDB • Version: 5.16 • Zugriff über: TDBQuery
Hallo zusammen,

ich habe ein Problem mit meinem INSERT-Befehl den ich über eine TDBQuery-Komponente auf eine TurboDB ausführen möchte. Der Code sieht folgendermaßen aus:

Delphi-Quellcode:
Tdbquery1.Close;

Tdbquery1.SQL.Text := 'INSERT INTO welddata (column2,column3,column4,column5,column6,column7,column8,column9, column10,column11,column12,column13,column14,column15) VALUES (''0'',''3243'',''3243'',''3243'',''3243'',''3243'', ''3243'',''3243'',''3243'',''5454'',''3243'',''3243'',''3243'',''324'');';

Tdbquery1.ExecSQL;
Das klappt alles super. Sobald ich das um z.B. ",column16" und einen weiteren Wert erweitere, tritt beim ausführen eine Exception auf: 'TdbQuery1: The SQL statement contains no text'.

Die Datenbank-Tabelle hat definitiv das Feld "column16" und der Datentyp / erlaubte Länge ist auch alles ok.

Ist das ein Bug? Ich müsste bis zu 50 Columns befüllen.

Danke schonmal!


[edit=Matze]2 Leerzeichen eingefügt, damit bei geringerer Auflösung umgebrochen wird. MfG, Matze[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 11:20
Lass dir mal .Text anzeigen, ob alles drinnen steht. Wenn nicht versuch es mal mit .Add()
Markus Kinzler
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 11:42
Danke für die Tipps!

Also ab 15 Werten ist die Tdbquery1.sql.text plötzlich leer. Gleiches passiert auch mit .ADD().

Ich glaub jetzt hab ich ein Problem :/ - aber irgendwie kann doch nicht schon bei 14 Werten Schluss sein?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 11:44
Wenn Du SQL-Parameter verwendest, wie sieht es dann aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 11:52
Auch wenn ein ein glühender Beführworter der parametrisierten Abfrage bin würde ich dieses Problem an den Hersteller melden. Schaut mir nach einen Bug aus.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 12:08
Hallo,

ist Text so auch noch leer?
Delphi-Quellcode:
Tdbquery1.Close;
Tdbquery1.SQL.Clear;
Tdbquery1.SQL.Add('INSERT INTO welddata (');
Tdbquery1.SQL.Add('column2,');
Tdbquery1.SQL.Add('column3,');
Tdbquery1.SQL.Add('column4,');
Tdbquery1.SQL.Add('column5,');
Tdbquery1.SQL.Add('column6,');
Tdbquery1.SQL.Add('column7,');
Tdbquery1.SQL.Add('column8,');
Tdbquery1.SQL.Add('column9,');
Tdbquery1.SQL.Add('column10,');
Tdbquery1.SQL.Add('column11,');
Tdbquery1.SQL.Add('column12,');
Tdbquery1.SQL.Add('column13,');
Tdbquery1.SQL.Add('column14,');
Tdbquery1.SQL.Add('column15),');
Tdbquery1.SQL.Add('VALUES (,');
Tdbquery1.SQL.Add(QuotedStr('0') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('5454') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('324') + ';');
Tdbquery1.ExecSQL;
Eventuell gibt es da ja intern irgendwo eine Stringbegrenzung auf 255 Zeichen und Dein "Einzeiler" ist ein bisserl zu lang geworden?

Bis column14 sind's unter 255 Zeichen, darüber wird's dann ein bisserl mehr.
Auf jeden Fall mal mit Parametern versuchen, eventuell kommst Du damit dann an einem eventuell vorhandenen Längenproblem vorbei.
Interessant wäre es zu wissen, ob es ein Längenproblem pro Zeile oder für das gesamte SQL-Statement gibt.
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 13:39
@Nahpets

ich musste es noch etwas debuggen, aber deine Version geht bis jetzt (hab mal zum Test noch einen Wert hinzugefügt - column16 in dem Code unten). Melde mich wieder! DANKE für die super Hilfe.

Delphi-Quellcode:
Tdbquery1.Close;
Tdbquery1.SQL.Clear;
Tdbquery1.SQL.Add('INSERT INTO welddata (');
Tdbquery1.SQL.Add('column2,');
Tdbquery1.SQL.Add('column3,');
Tdbquery1.SQL.Add('column4,');
Tdbquery1.SQL.Add('column5,');
Tdbquery1.SQL.Add('column6,');
Tdbquery1.SQL.Add('column7,');
Tdbquery1.SQL.Add('column8,');
Tdbquery1.SQL.Add('column9,');
Tdbquery1.SQL.Add('column10,');
Tdbquery1.SQL.Add('column11,');
Tdbquery1.SQL.Add('column12,');
Tdbquery1.SQL.Add('column13,');
Tdbquery1.SQL.Add('column14,');
Tdbquery1.SQL.Add('column15,');
Tdbquery1.SQL.Add('column16) ');
Tdbquery1.SQL.Add('VALUES (');
Tdbquery1.SQL.Add(QuotedStr('0') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('5454') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('3243') + ',');
Tdbquery1.SQL.Add(QuotedStr('324') + ');');
Tdbquery1.ExecSQL;
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#8

Re: TurboDB - INSERT mit mehr als 14 Parametern geht nicht

  Alt 10. Mär 2009, 13:45
KLAPPT mit oben genannter Methode. Kann jetzt 50 Werte eintragen. Der Code sieht zwar etwas "gewaltig" aus - aber es läuft.

VIELEN LIEBEN DANK an alle !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz