![]() |
Datenbank: mysql • Version: 5.2 • Zugriff über: mydac
String bei Sql Abfrage zu lang
Ich schon wieder :hi: ,
String zu lang, sagt er mir... Hat jemand ne Idee, wie ich es anders machen kann?
Delphi-Quellcode:
myquery1.sql.text := ('select distinct fabrikat,modell,fahrerhaus,radstand,gesamtgewicht,trommel,luftansaugung,achsformel,volumen,ausfuehrung from fabrikate,modelle,fahrerhaeuser,radstaende,gg,trommeln,luftansaugungen,achsformeln,volumina,ausfuehrungen,bezeichnungen where fabrikate.f_id = '''+a+''') and (modelle.m_id = bezeichnungen.m_id and bezeichnungen.f_id = '''+a+''') and (fahrerhaeuser.fa_id = bezeichnungen.fa_id and bezeichnungen.f_id = '''+a+''') and (radstaende.r_id = bezeichnungen.r_id and bezeichnungen.f_id = '''+a+''') and (gg.g_id = bezeichnungen.g_id and bezeichnungen.f_id = '''+a+''') and (trommeln.t_id = bezeichnungen.t_id and bezeichnungen.f_id = '''+a+''') and (luftansaugungen.l_id = bezeichnungen.l_id and bezeichnungen.f_id = '''+a+''') and (achsformeln.ac_id = bezeichnungen.ac_id and bezeichnungen.f_id = '''+a+''') and (volumina.v_id = bezeichnungen.v_id and bezeichnungen.f_id = '''+a+''') and (ausfuehrungen.a_id = bezeichnungen.a_id and bezeichnungen.f_id = '''+a+''') ');
|
Re: Sting bei Sql Abfrage zu lang
benutz doch myquery1.sql.add('');
Und trenn ein paar mal den SQLstring damit Sanfte Grüße! |
Re: String bei Sql Abfrage zu lang
Danke geht....
:dp: |
Re: String bei Sql Abfrage zu lang
Das hilft auch nicht unbedingt was, ich vermute mal der Compiler meckert schon rum?
Delphi speichert die Strinkonstanten als ShortString ab und die dürfen maximal 255 Zeichen lang sein. Du kannst aber die Strings auch aufteilen ... einfach mit + Die erste Stringkonstante war über 260 Byte lang:
Code:
PS SQL kommt doch auch mit " als Stringgegrenzung klar?
myquery1.sql.text := ('select distinct fabrikat,modell,fahrerhaus,radstand,gesamtgewicht,trommel,luftansaugung,achsformel,volumen,ausfuehrung from fabrikate,modelle,fahrerhaeuser,[color=#ff0000][b]'+'[/b][/color]radstaende,gg,trommeln,luftansaugungen,achsformeln,volumina,ausfuehrungen,bezeichnungen where fabrikate.f_id = '''+a+''') and (modelle.m_id = bezeichnungen.m_id and bezeichnungen.f_id = '''+a+''') and (fahrerhaeuser.fa_id = bezeichnungen.fa_id and bezeichnungen.f_id = '''+a+''') and (radstaende.r_id = bezeichnungen.r_id and bezeichnungen.f_id = '''+a+''') and (gg.g_id = bezeichnungen.g_id and bezeichnungen.f_id = '''+a+''') and (trommeln.t_id = bezeichnungen.t_id and bezeichnungen.f_id = '''+a+''') and (luftansaugungen.l_id = bezeichnungen.l_id and bezeichnungen.f_id = '''+a+''') and (achsformeln.ac_id = bezeichnungen.ac_id and bezeichnungen.f_id = '''+a+''') and (volumina.v_id = bezeichnungen.v_id and bezeichnungen.f_id = '''+a+''') and (ausfuehrungen.a_id = bezeichnungen.a_id and bezeichnungen.f_id = '''+a+''') ');
Eventuell könntest du damit auch noch etwas lesbarer arbeiten ... weniger '.
Delphi-Quellcode:
Und alles in einer Zeile ist auch nicht sonderlich übersichtlich.
myquery1.sql.text := ('select distinct fabrikat,modell,fahrerhaus,radstand,gesamtgewicht,trommel,luftansaugung,achsformel,volumen,ausfuehrung from fabrikate,modelle,fahrerhaeuser,'+'radstaende,gg,trommeln,luftansaugungen,achsformeln,volumina,ausfuehrungen,bezeichnungen where fabrikate.f_id = "'+a+'") and (modelle.m_id = bezeichnungen.m_id and bezeichnungen.f_id = "'+a+'") and (fahrerhaeuser.fa_id = bezeichnungen.fa_id and bezeichnungen.f_id = "'+a+'") and (radstaende.r_id = bezeichnungen.r_id and bezeichnungen.f_id = "'+a+'") and (gg.g_id = bezeichnungen.g_id and bezeichnungen.f_id = "'+a+'") and (trommeln.t_id = bezeichnungen.t_id and bezeichnungen.f_id = "'+a+'") and (luftansaugungen.l_id = bezeichnungen.l_id and bezeichnungen.f_id = "'+a+'") and (achsformeln.ac_id = bezeichnungen.ac_id and bezeichnungen.f_id = "'+a+'") and (volumina.v_id = bezeichnungen.v_id and bezeichnungen.f_id = "'+a+'") and (ausfuehrungen.a_id = bezeichnungen.a_id and bezeichnungen.f_id = "'+a+'")');
Wenn du dir angewönst alles spätestens an 'ner bestimmten Stelle umzubrechen, dann würdest du auch nicht mehr an diese Grenze gelangen.
Delphi-Quellcode:
myquery1.sql.text := ('select distinct fabrikat,modell,fahrerhaus,radstand,gesamtgewicht,trommel,'
+'luftansaugung,achsformel,volumen,ausfuehrung from fabrikate,modelle,fahrerhaeuser,radstaende,' +'gg,trommeln,luftansaugungen,achsformeln,volumina,ausfuehrungen,bezeichnungen where fabrikate.' +'f_id = "'+a+'") and (modelle.m_id = bezeichnungen.m_id and bezeichnungen.f_id = "'+a+'") and ' +'(fahrerhaeuser.fa_id = bezeichnungen.fa_id and bezeichnungen.f_id = "'+a+'") and (radstaende.' +'r_id = bezeichnungen.r_id and bezeichnungen.f_id = "'+a+'") and (gg.g_id = bezeichnungen.g_id ' +'and bezeichnungen.f_id = "'+a+'") and (trommeln.t_id = bezeichnungen.t_id and bezeichnungen.' +'f_id = "'+a+'") and (luftansaugungen.l_id = bezeichnungen.l_id and bezeichnungen.f_id = "'+a +'") and (achsformeln.ac_id = bezeichnungen.ac_id and bezeichnungen.f_id = "'+a+'") and (' +'volumina.v_id = bezeichnungen.v_id and bezeichnungen.f_id = "'+a+'") and (ausfuehrungen.a_id ' +'= bezeichnungen.a_id and bezeichnungen.f_id = "'+a+'")'); |
Re: String bei Sql Abfrage zu lang
Außerdem würde die Verwendung von Parametern sehr der Übersichtlichkeit dienen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz