![]() |
Datenbank: MySQL • Version: 5.0 • Zugriff über: ZEOS 6.6.6
Fehler bei Bereichsprüfung
hallo Leute,
ich hab mal wieder ein Problem, bei welchem ich nicht weiter komme. D7 - Windows XP - MySQL 5.0 tmp_adressen ca 1500 Datensätze tmp_fahrzeuge ca 2200 Datensätze tmp_anreden 4 Datensätze Folgende Abfrage
Code:
schlägt unter delphi mit folgendem Fehler an: Fehler bei Bereichsprüfung.
SELECT tmp_adressen.*, tmp_fahrzeuge.* FROM tmp_fahrzeuge left join tmp_adressen on tmp_fahrzeuge.fzg_adrnr=tmp_adressen.kd_lfdnr
Im MySQL-Administrator funktioniert sie aber einwandfrei. Wenn ich statt tmp_fahrzeuge die tmp_anreden verwende
Code:
dann wird kein Fehler ausgeworfen.
SELECT tmp_anreden.*, tmp_adressen.* FROM tmp_adressen left join tmp_anreden on tmp_adressen.kd_anredenr=tmp_anreden.anr_lfdnr
Ich nehmen mal an, dass liegt daran, dass in der tmp_anreden wesentlich weniger Felder und Zeilen sind. Kennt jemand das Problem bzw. eine Lösung? Kann leider die Tabelle weder umstellen noch sonst wie ändern, da es sich um Daten aus einem Fremdprodukt handelt. Auch kann jetzt nicht von Zeos auf was anderes umsteigen, weil das Projekt einfach zu groß dafür ist. |
AW: Fehler bei Bereichsprüfung
Wenn du per SQL Daten aus mehreren Tabellen abfragst, dann darfst du strenggenommen nur einmal den Wildcard * benützen.
SQL-Code:
Grund: es könnte gleichnamige Feldnamen in mehreren Tabellen geben.
SELECT tmp_adressen.*, tmp_fahrzeuge.Feld1, tmp_fahrzeuge.Feld2,...
FROM tmp_fahrzeuge left join tmp_adressen on tmp_fahrzeuge.fzg_adrnr=tmp_adressen.kd_lfdnr Je nach Treiber und Datenbank gibt es unterschiedliche Strategien diese Feldnamenkollisionen aufzulösen. Wenn es blöd läuft, gibt es zwei Felder mit dem gleichen Namen. Dies könnte die Datenbanktreiberschicht (Zeos) natürlich in Bedrängnis bringen, wenn im Fields[]-Array gleichnamige Felder sind. |
AW: Fehler bei Bereichsprüfung
Zitat:
Delphi-Quellcode:
Könnte das der Grund sein?
type
Sqlstring=array [1..80] of char; ... Sqlstring:=Stringmit90zeichen; Gruß K-H |
AW: Fehler bei Bereichsprüfung
Zitat:
Alle Feldnamen explizit im Select ..... join... aufzuführen wäre zwar möglich, möchte ich aber eigentlich nicht machen, weil ich nicht sicherstellen kann, dass die Feldnamen bzw. Feldanzahl der Quell-Forxpro-Dateien immer so bleibt. Und wenn sich diese mal verändern sollte, würde meine Select-Anweisung plötzlich nicht mehr funktionien bzw. nicht alle Daten liefern. Außerdem bleibt dann ja die Frage, warum es bei Adressen mit Join auf Anreden mit den Wildcard's geht? Da müßte der Fehler ja auch auftreten. Zitat:
|
AW: Fehler bei Bereichsprüfung
Kleine Ergänzung noch:
Die Exception tritt in folgender Procedure auf: Unit ZPlainMySqlDriver
Delphi-Quellcode:
function TZMySQL5PlainDriver.GetFieldData(Row: PZMySQLRow;
Offset: Cardinal): PChar; begin Result := ZPlainMySql5.PMYSQL_ROW(ROW)[Offset]; end; |
AW: Fehler bei Bereichsprüfung
Zitat:
|
AW: Fehler bei Bereichsprüfung
Und was hat er davon? Er ist doch kein Zeos-Entwickler.
Allerdings.... Wenn die Zeos-Entwickler etwas blöd waren, dann haben sie vielleicht das Ergebnis der Funktion "ZPlainMySql5.PMYSQL_ROW" als "Array [0..0] Of Char" deklariert und setzen eine abgeschaltete Bereichsprüfung voraus. Schalte sie mal aus und versuch dein Glück. Weitere Ideen zur Umgehung des Problems: Gibt es noch andere Provider für MySQL, ODBC z.B.? Versuche es damit. Vielleicht ist das mal wieder ein Problem bei Zeos. Wenn die Query bei expliziter Angabe der Feldnamen funktioniert, dann kannst Du dir vielleicht behelfen, wenn Du vorher die Feldnamen der Tabellen ermittelst und dann die Query dynamisch zusammen baust. |
AW: Fehler bei Bereichsprüfung
Also ich hab das jetzt mal mit expliziten Feldnamen im Query probiert.
Code:
Allerdings hab ich so das Gefühl, dass hier vielleicht für Zeos zuviele Felder sind. Immerhin 330. Hab ich vorher gar nicht drauf geachtet. Gibt es denn bei Zeos eine Obergrenze für die Felderanzahl? Im MySQL-Administrator gibt's ja keine Probleme, somit kann MySQL das sehrwohl.
SELECT tmp_anreden.anr_KURZANREDE,tmp_anreden.anr_LANGANREDE,tmp_anreden.anr_LFDNR,tmp_anreden.anr_PLUS,
tmp_adressen.kd_ANREDE,tmp_adressen.kd_ANREDENR,tmp_adressen.kd_APARTNER,tmp_adressen.kd_ARTVKNR, tmp_adressen.kd_ARTVK_RAB,tmp_adressen.kd_AUFNDAT,tmp_adressen.kd_AWGRPLFDNR,tmp_adressen.kd_AWRABATT, tmp_adressen.kd_BRIEFANR,tmp_adressen.kd_BUDAT_ANR,tmp_adressen.kd_BUDAT_IC,tmp_adressen.kd_BUDAT_KST, tmp_adressen.kd_DTAUS,tmp_adressen.kd_DUMMY01,tmp_adressen.kd_EINMALKTO,tmp_adressen.kd_EMAIL, tmp_adressen.kd_ETRABATT,tmp_adressen.kd_EXTRA1,tmp_adressen.kd_EXTRA2,tmp_adressen.kd_EXTRA3, tmp_adressen.kd_EXTRA4,tmp_adressen.kd_EXTSALDDAT,tmp_adressen.kd_EXT_SALDO,tmp_adressen.kd_FIBUKONTO, tmp_adressen.kd_FIRMENNR,tmp_adressen.kd_GEBDATUM,tmp_adressen.kd_GEBMONNR,tmp_adressen.kd_GEBTAGNR, tmp_adressen.kd_GESPERRT,tmp_adressen.kd_HANDSCHUH,tmp_adressen.kd_HELM,tmp_adressen.kd_HOSE, tmp_adressen.kd_INFO,tmp_adressen.kd_JACKE,tmp_adressen.kd_KDGRP,tmp_adressen.kd_KONZEPTNR, tmp_adressen.kd_LADRESSNR,tmp_adressen.kd_LADRLFDNR,tmp_adressen.kd_LAND,tmp_adressen.kd_LANREDENR, tmp_adressen.kd_LFDNR,tmp_adressen.kd_LKURZANR,tmp_adressen.kd_LKZ,tmp_adressen.kd_LLANGANR, tmp_adressen.kd_LLKZ,tmp_adressen.kd_LNAME1,tmp_adressen.kd_LNAME2,tmp_adressen.kd_LNAME3, tmp_adressen.kd_LORT,tmp_adressen.kd_LPLZ,tmp_adressen.kd_LSTRASSE,tmp_adressen.kd_L_RECHDATE, tmp_adressen.kd_MAHNSPERRE,tmp_adressen.kd_MOBIL,tmp_adressen.kd_NAME1,tmp_adressen.kd_NAME2, tmp_adressen.kd_NAME3,tmp_adressen.kd_NON_EU,tmp_adressen.kd_NOTIZ2,tmp_adressen.kd_NPR_AUF_LF, tmp_adressen.kd_NUMMER,tmp_adressen.kd_ORT,tmp_adressen.kd_PFACH,tmp_adressen.kd_PLUS,tmp_adressen.kd_PLZ, tmp_adressen.kd_PLZPF,tmp_adressen.kd_POSTFACH,tmp_adressen.kd_PREFERENGL,tmp_adressen.kd_PR_AUF_LF, tmp_adressen.kd_SALDO,tmp_adressen.kd_SAMMELKZ,tmp_adressen.kd_SCHUHE,tmp_adressen.kd_STEUERNR, tmp_adressen.kd_STEUER_ID,tmp_adressen.kd_STEU_IDENT,tmp_adressen.kd_STRASSE,tmp_adressen.kd_SUCHNAME, tmp_adressen.kd_TELEFAX,tmp_adressen.kd_TELEFAX1,tmp_adressen.kd_TELEFAX2,tmp_adressen.kd_TELEFON1, tmp_adressen.kd_TELEFON2,tmp_adressen.kd_TK_RAB_AB,tmp_adressen.kd_TK_RAB_DS,tmp_adressen.kd_TX_RAB_OE, tmp_adressen.kd_VKPREISNR,tmp_adressen.kd_WOHNORT,tmp_adressen.kd_WWSPERRE,tmp_adressen.kd_WWW, tmp_adressen.kd_ZBED_NR,tmp_adressen.kd_EXCL_R_AB,tmp_adressen.kd_EXCL_R_DS,tmp_adressen.kd_EXCL_R_OE, tmp_adressen.kd_KUNDE_INT,tmp_adressen.kd_ORGAN_SCH,tmp_adressen.kd_MAHNSTLFD,tmp_adressen.kd_PERMITCODE, tmp_adressen.kd_PERMITNOTE,tmp_adressen.kd_EDITDATE,tmp_adressen.kd_CRENT_DONE,tmp_adressen.kd_OP_EXCLUDE, tmp_adressen.kd_OUT_ONLINE,tmp_fahrzeuge.fzg_ACHSEN,tmp_fahrzeuge.fzg_ACHSGEW,tmp_fahrzeuge.fzg_ACHS_P, tmp_fahrzeuge.fzg_ACHS_PN,tmp_fahrzeuge.fzg_ADRNR,tmp_fahrzeuge.fzg_ANHBREMS,tmp_fahrzeuge.fzg_ANHFORM, tmp_fahrzeuge.fzg_ANHOBREMS,tmp_fahrzeuge.fzg_ANHPRUEF,tmp_fahrzeuge.fzg_ANKAUF,tmp_fahrzeuge.fzg_ANKAUFVON, tmp_fahrzeuge.fzg_ANKDATUM,tmp_fahrzeuge.fzg_ANTRARTNR,tmp_fahrzeuge.fzg_ANTR_ACHS,tmp_fahrzeuge.fzg_ANTR_ART, tmp_fahrzeuge.fzg_ART,tmp_fahrzeuge.fzg_AUFBAU,tmp_fahrzeuge.fzg_AUFNDAT,tmp_fahrzeuge.fzg_AUFRIST, tmp_fahrzeuge.fzg_AUSFUHR,tmp_fahrzeuge.fzg_AUSSTATT,tmp_fahrzeuge.fzg_AUSST_SER,tmp_fahrzeuge.fzg_AUSST_XTRA, tmp_fahrzeuge.fzg_BAUREIHENR,tmp_fahrzeuge.fzg_BEMERK,tmp_fahrzeuge.fzg_BESITZ_ST,tmp_fahrzeuge.fzg_BEST_DAT, tmp_fahrzeuge.fzg_BETRIEB,tmp_fahrzeuge.fzg_BEZ,tmp_fahrzeuge.fzg_BREITE,tmp_fahrzeuge.fzg_BREMSE1, tmp_fahrzeuge.fzg_BREMSE2,tmp_fahrzeuge.fzg_BREMSTYP,tmp_fahrzeuge.fzg_BUDAT_FLAG,tmp_fahrzeuge.fzg_BU_KOSTART, tmp_fahrzeuge.fzg_CCM,tmp_fahrzeuge.fzg_CO2,tmp_fahrzeuge.fzg_CO2_G_KM,tmp_fahrzeuge.fzg_CODE_KRFT, tmp_fahrzeuge.fzg_DBFAHR,tmp_fahrzeuge.fzg_DBSTAND,tmp_fahrzeuge.fzg_DKBANR,tmp_fahrzeuge.fzg_DOK1, tmp_fahrzeuge.fzg_DOK1TYP,tmp_fahrzeuge.fzg_DREHSTAND,tmp_fahrzeuge.fzg_DREHZAHL,tmp_fahrzeuge.fzg_D_VORLAUF, tmp_fahrzeuge.fzg_D_ZUGESAGT,tmp_fahrzeuge.fzg_EGTYPDATUM,tmp_fahrzeuge.fzg_EGTYPGEN,tmp_fahrzeuge.fzg_EKBRUTTO, tmp_fahrzeuge.fzg_EKNETTO,tmp_fahrzeuge.fzg_EMISSION,tmp_fahrzeuge.fzg_EM_NR,tmp_fahrzeuge.fzg_ERSTZULASS, tmp_fahrzeuge.fzg_EU_CATEG,tmp_fahrzeuge.fzg_EU_SCHAD,tmp_fahrzeuge.fzg_EXTERN,tmp_fahrzeuge.fzg_EXTFZGNR, tmp_fahrzeuge.fzg_EXTRA1,tmp_fahrzeuge.fzg_EXTRA2,tmp_fahrzeuge.fzg_EXTRA3,tmp_fahrzeuge.fzg_EXTRA4, tmp_fahrzeuge.fzg_EXTRA5,tmp_fahrzeuge.fzg_EXTRA6,tmp_fahrzeuge.fzg_EXTRAD1,tmp_fahrzeuge.fzg_EXTRAD2, tmp_fahrzeuge.fzg_EXTRAD3,tmp_fahrzeuge.fzg_EXTRAD4,tmp_fahrzeuge.fzg_EXTRAD5,tmp_fahrzeuge.fzg_EXTRAD6, tmp_fahrzeuge.fzg_EXTRADATUM,tmp_fahrzeuge.fzg_EXTRATEXT,tmp_fahrzeuge.fzg_FARBCODE,tmp_fahrzeuge.fzg_FARBE, tmp_fahrzeuge.fzg_FELGE_H,tmp_fahrzeuge.fzg_FELGE_V,tmp_fahrzeuge.fzg_FINPRUEF,tmp_fahrzeuge.fzg_FRISTNR, tmp_fahrzeuge.fzg_FSCHR,tmp_fahrzeuge.fzg_FZGDRUCK,tmp_fahrzeuge.fzg_F_ART,tmp_fahrzeuge.fzg_F_ARTSCHL, tmp_fahrzeuge.fzg_F_ART_SCHL,tmp_fahrzeuge.fzg_F_HER_SCHL,tmp_fahrzeuge.fzg_F_TYPSCHL,tmp_fahrzeuge.fzg_F_TYP_SCHL, tmp_fahrzeuge.fzg_FZGKLASSE,tmp_fahrzeuge.fzg_GAENGE,tmp_fahrzeuge.fzg_GARANTENDE,tmp_fahrzeuge.fzg_GARANTNR, tmp_fahrzeuge.fzg_GARANT_D,tmp_fahrzeuge.fzg_GETRB_ART,tmp_fahrzeuge.fzg_GETRIEBE,tmp_fahrzeuge.fzg_GETR_CODE, tmp_fahrzeuge.fzg_GEWICHT,tmp_fahrzeuge.fzg_HERSTELLER,tmp_fahrzeuge.fzg_HND_NEBENK,tmp_fahrzeuge.fzg_HOEHE, tmp_fahrzeuge.fzg_HUNR,tmp_fahrzeuge.fzg_IC_AUFTRAG,tmp_fahrzeuge.fzg_IDENTNR,tmp_fahrzeuge.fzg_IGNOREDAT, tmp_fahrzeuge.fzg_INFO,tmp_fahrzeuge.fzg_IN_HANDEL,tmp_fahrzeuge.fzg_IST_DIFF,tmp_fahrzeuge.fzg_KBAHERST, tmp_fahrzeuge.fzg_KBANR,tmp_fahrzeuge.fzg_KENNZ,tmp_fahrzeuge.fzg_KMH_MAX,tmp_fahrzeuge.fzg_KMSTAND, tmp_fahrzeuge.fzg_KM_OR_STD,tmp_fahrzeuge.fzg_KRAFTSTOFF,tmp_fahrzeuge.fzg_KRSTAUFBER,tmp_fahrzeuge.fzg_KST_CODE, tmp_fahrzeuge.fzg_KTYPNR,tmp_fahrzeuge.fzg_KW,tmp_fahrzeuge.fzg_L100AGO,tmp_fahrzeuge.fzg_L100IGO, tmp_fahrzeuge.fzg_L100KOMBI,tmp_fahrzeuge.fzg_LAENDAT,tmp_fahrzeuge.fzg_LAENGE,tmp_fahrzeuge.fzg_LAG_STATUS, tmp_fahrzeuge.fzg_LAUDAT,tmp_fahrzeuge.fzg_LEERGEW,tmp_fahrzeuge.fzg_LEISTGEW,tmp_fahrzeuge.fzg_LFDNR, tmp_fahrzeuge.fzg_LFSCHRDAT,tmp_fahrzeuge.fzg_LHUDAT,tmp_fahrzeuge.fzg_LIEF_ZEIT,tmp_fahrzeuge.fzg_LISTENPR, tmp_fahrzeuge.fzg_LSPDAT,tmp_fahrzeuge.fzg_LUVVDAT,tmp_fahrzeuge.fzg_MAXGEW,tmp_fahrzeuge.fzg_MERKMAL, tmp_fahrzeuge.fzg_MID_NR,tmp_fahrzeuge.fzg_MIKE_NR,tmp_fahrzeuge.fzg_MODELL,tmp_fahrzeuge.fzg_MOTORCODE, tmp_fahrzeuge.fzg_MOTORKAT,tmp_fahrzeuge.fzg_MOTORNR,tmp_fahrzeuge.fzg_NAECHSTEAU,tmp_fahrzeuge.fzg_NAECHSTEHU, tmp_fahrzeuge.fzg_NAECHSTEKL,tmp_fahrzeuge.fzg_NAECHSTESP,tmp_fahrzeuge.fzg_NEU_STATUS,tmp_fahrzeuge.fzg_NUTZLAST, tmp_fahrzeuge.fzg_N_BILDMAIN,tmp_fahrzeuge.fzg_OHNESP_KEY,tmp_fahrzeuge.fzg_ORIG_JN,tmp_fahrzeuge.fzg_PKW_BIKE, tmp_fahrzeuge.fzg_PS,tmp_fahrzeuge.fzg_RADIOCODE,tmp_fahrzeuge.fzg_RAEDER,tmp_fahrzeuge.fzg_REIFENGR, tmp_fahrzeuge.fzg_REIFENHINT,tmp_fahrzeuge.fzg_REIFENP57B,tmp_fahrzeuge.fzg_REIFENVORN,tmp_fahrzeuge.fzg_REIFEN_H, tmp_fahrzeuge.fzg_REIFEN_V,tmp_fahrzeuge.fzg_RESERV_BIS,tmp_fahrzeuge.fzg_RFH_TERMIN,tmp_fahrzeuge.fzg_SIMPLE2P, tmp_fahrzeuge.fzg_SITZE,tmp_fahrzeuge.fzg_SOFORTZAHL,tmp_fahrzeuge.fzg_SONST,tmp_fahrzeuge.fzg_SPERRE, tmp_fahrzeuge.fzg_SPTROTZHU,tmp_fahrzeuge.fzg_STANDORT,tmp_fahrzeuge.fzg_STAND_SEIT,tmp_fahrzeuge.fzg_STD_STAND, tmp_fahrzeuge.fzg_STEHPLATZ,tmp_fahrzeuge.fzg_STEUER1,tmp_fahrzeuge.fzg_STEUER2,tmp_fahrzeuge.fzg_STEUER3, tmp_fahrzeuge.fzg_STUETZLAST,tmp_fahrzeuge.fzg_SUCHNR,tmp_fahrzeuge.fzg_S_TAG_KOST,tmp_fahrzeuge.fzg_TACHO, tmp_fahrzeuge.fzg_TACHONR,tmp_fahrzeuge.fzg_TACHOSTAND,tmp_fahrzeuge.fzg_TACHOTYP,tmp_fahrzeuge.fzg_TANKRAUM, tmp_fahrzeuge.fzg_TAXIMIET,tmp_fahrzeuge.fzg_TECHACHS1,tmp_fahrzeuge.fzg_TECHACHS2,tmp_fahrzeuge.fzg_TECHACHS3, tmp_fahrzeuge.fzg_TECHGEW,tmp_fahrzeuge.fzg_TEIL2,tmp_fahrzeuge.fzg_TERMINV,tmp_fahrzeuge.fzg_TOLERANZ, tmp_fahrzeuge.fzg_TYP,tmp_fahrzeuge.fzg_TYP3,tmp_fahrzeuge.fzg_TYP_AU,tmp_fahrzeuge.fzg_TXTAUFBAU, tmp_fahrzeuge.fzg_TYPVARIVER,tmp_fahrzeuge.fzg_TÜVEXPORT,tmp_fahrzeuge.fzg_UEBERFUEHR,tmp_fahrzeuge.fzg_UEBERF_EK, tmp_fahrzeuge.fzg_UF_INCL,tmp_fahrzeuge.fzg_UNFALLHIST,tmp_fahrzeuge.fzg_UNTERTYP,tmp_fahrzeuge.fzg_UVV, tmp_fahrzeuge.fzg_VARI_TXT,tmp_fahrzeuge.fzg_VERKAUFT,tmp_fahrzeuge.fzg_VER_TXT1,tmp_fahrzeuge.fzg_VER_TXT2, tmp_fahrzeuge.fzg_VK1BRUTTO,tmp_fahrzeuge.fzg_VK2BRUTTO,tmp_fahrzeuge.fzg_VK3BRUTTO,tmp_fahrzeuge.fzg_VK_BEDING, tmp_fahrzeuge.fzg_VK_DATUM,tmp_fahrzeuge.fzg_VORBESITZ,tmp_fahrzeuge.fzg_WGRUPPE,tmp_fahrzeuge.fzg_X_KM1, tmp_fahrzeuge.fzg_X_KM2,tmp_fahrzeuge.fzg_X_KM3,tmp_fahrzeuge.fzg_X_KM4,tmp_fahrzeuge.fzg_ZGEB_INCL, tmp_fahrzeuge.fzg_ZUL_GEBUEH,tmp_fahrzeuge.fzg_ZYLINDER,tmp_fahrzeuge.fzg_WRTLFDNR,tmp_fahrzeuge.fzg_MITZYKLUS, tmp_fahrzeuge.fzg_VORFELDNR from tmp_fahrzeuge left join tmp_adressen on tmp_fahrzeuge.fzg_adrnr=tmp_adressen.kd_lfdnr left join tmp_anreden on tmp_adressen.kd_anredenr=tmp_anreden.anr_lfdnr |
AW: Fehler bei Bereichsprüfung
Und? Funktioniert es?
PS: Ich persönlich bin an der exakten Query gar nicht interessiert. Du hättest sie auch kürzen können, denn zumindest meine Phantasie reicht aus, um mir das vorzustellen. ;-) |
AW: Fehler bei Bereichsprüfung
Achso, hätte ich vielleicht dazu schreiben sollen. Funktioniert natürlich nicht. Es kommt excakt die gleich Fehlermeldung.
Also liegt es nicht an den Wildcards sondern wohl eher an das anzahl der Felder im SQL-Result. Das meine Frage: Weiß jemand ob es bei Zeos eine Obergrenze gibt, was die Anzahl der Felder im Query-Result angeht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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 by Thomas Breitkreuz