![]() |
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. |
AW: Fehler bei Bereichsprüfung
Zufällig geht es auch
![]() Hast Du es einmal mit abgeschalteter Bereichsprüfung versucht? Gruß K-H |
AW: Fehler bei Bereichsprüfung
Wenn du Projektoptionen - Compiler - Laufzeitfehler - Bereichsüberprüfung meinst, den hab ich schon die ganze Zeit abgeschaltet.
Ich habe jetzt die ganze Routine umgestellt. Ziel war, dem Benutzer aus den 3 Tabellen eine Feldauswahl zur Verfügung zu stellen, und hinterher die Daten entsprechend seiner Auswahl zu übernehmen. Ich mußte aber auch sicherstellen, dass mittels join die Daten der 3 Tabellen zusammen zu führen ist. Im erten Ansatz wollte einfach alle Daten der 3 Tabellen erst einmal in meine MySQL-DB zu übernehmen um dann dem Benutzer seien Auswahl anzeigen zu lassen. Das hat aber auf Grund der hohen Feldanzahl zu dem bekannten Fehler geführt. Jetzt bin anders herangegangen. Ich lese einfach vorab alle Feldnamen aus den 3 Tabellen aus, und übertrage diese in die Comboboxen für die Auswahl des Users. Erst wenn die Daten dann übernommen werden sollen, erstelle ich mir die TMP-Tabellen, aber eben nur mit den Feldern, die tatsächlich benötigt werden. Dann klappt auch die Abfage mit Platzhaltern und (!) mit zwei JOIN's in der Abfrage (Fahrzeug -> Kunden -> Anrede). Problem ist also für mich gelöst. Erkenntnis daraus: Ab einer gewissen Felderanzahl kommt Zeos einfach an seine Grenzen. Sicherlich ließe sich in den Sources von Zeos das Problem ergründen, aber dazu fehlt mir jetzt die Muße. (Wird Zeos eigentlich noch weiterentwickelt?) <- Nur mal so am Rande. |
AW: Fehler bei Bereichsprüfung
Eine Rückfrage im Forum ZeosLib hat alles bestätigt. Es wird je Row im Query-Result max. 32 kb reserviert. Interessant dabei ist, dass jeweils der maximal benötigte Platz eines Feldes verwendet wird, unabhängig ob sie NULL, leer, nur 2 Zeichen oder bis zu ihrer definierten Größe belegt ist. Das heist eine Feld varchar(200) belegt bei der Abfrag über Zeos immer 200 Byte im Speicher, egal was drin steht.
Das erklährt bei 330 Feldern schon so einiges (hab's jetzt aber nicht nachgerechnet). Hier der Link zum Thread (wenn das hier an dieser Stelle nicht erlaubt, bitte bescheid geben) ![]() Ab Zeos 7 soll der Buffer auf 64 kb erhöht sein. |
AW: Fehler bei Bereichsprüfung
Zitat:
|
AW: Fehler bei Bereichsprüfung
Richtig. Und im Zuge der Entwicklung, und der immer größer werdenden Speicher, und der zu verwaltenden Datenmengen, ist das Problem damit nur weiter in die Zukunft verlagert.
Noch besser wäre es natürlich einen solchen Fehler anzufangen, und ggf. wenigstens eine Teilmenge zurückzuliefern. Und noch besser wäre es, wenn innerhalb der Komponenten der Buffer vom Entwickler festgelegt werden könnte. Aber immerhin. Jetzt, wo ich davon weiß, finde ich Möglichkeiten mir zu helfen. Bedeutet zwar mehr Programmieraufwand, aber damit kann ich leben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 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