Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Nicht alle Felder einer Interbase-DB in Delphi verfügbar (https://www.delphipraxis.net/15005-nicht-alle-felder-einer-interbase-db-delphi-verfuegbar.html)

migi 20. Jan 2004 13:52


Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
Hallo,

ich habe folgendes Problem:

Über die IBConsole habe ich eine Datenbank mit entsprechenden Tabellen angelegt. Es wurden alle SQL-Befehle ausgeführt und ich kann mir die Tabellen in der IBConsole ansehen. Alles OK.

In Delphi möchte ich nun über eine Query auf die Datenbank zugreifen. Dabei werden in vielen Tabellen nicht alle Felder angezeigt (SELECT) oder es kommt zu einer Fehlermeldung "Unknown Field" (INSERT...).
Dieses Phänomen lässt sich nicht logisch nachvollziehen. Es ist egal, welche Feldtypen die Felder haben, es ist egal, welche Namen sie haben. Es werden jedoch immer die ersten 3-5 Felder angezeigt; manchmal eben alle.

Bei dieser Tabelle werden alle Felder angezeigt:
SQL-Code:
CREATE TABLE "CHARTERLKW"
(
  "id"  INTEGER NOT NULL,
  "Name"  "VC200",
  "Nummer"  "VC20",
  "Unternehmer"  INTEGER,
  "Typ"  INTEGER,
  "KFZ-Kennzeichen"  "VC20",
  "Marke"  "VC100",
  "Handy"  "VC100",
  "Hauptfahrer"  "VC200",
  "Kommentar"  BLOB SUB_TYPE 0 SEGMENT SIZE 80,
CONSTRAINT "PK_CHARTERLKW" PRIMARY KEY ("id")
);
Und bei dieser eben nicht:
SQL-Code:
 CREATE TABLE "UNTERNEHMER"
(
  "id"  INTEGER NOT NULL,
  "Name"  "VC200",
  "Zusatz"  "VC200",
  "Straße"  "VC100",
  "PLZ"  "VC10",
  "Ort"  "VC100",
  "Kennung"  "VC100",
  "Land"  "VC100",
  "Ansprechpartner"  "VC200",
  "R-Anschrift"  BLOB SUB_TYPE 0 SEGMENT SIZE 80,
  "Kreditlimit"  DECIMAL(10, 2),
  "Telefon"  "VC50",
  "Telefax"  "VC50",
  "E-Mail"  "VC50",
  "Zahlungsziel"  INTEGER,
  "UST-ID"  "VC100",
  "Bank"  "VC200",
  "BLZ"  "VC20",
  "Konto-Nr"  "VC20",
  "Swift"  "VC100",
  "IBAN"  "VC100",
  "Kommentar"  BLOB SUB_TYPE 0 SEGMENT SIZE 80,
CONSTRAINT "PK_UNTERNEHMEN" PRIMARY KEY ("id")
);
Ich kann nicht wirklich einen grundlegenden Unterschied feststellen.

Danke für die Hilfe.

MrSpock 20. Jan 2004 13:56

Re: Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
Hallo migi,

lass doch mal die ganzen Anführungszeichen weg.

MyRealName 20. Jan 2004 13:56

Re: Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
Also wenn du da keinen Unterscheid feststellen kannst... ;-)

Ich glaub, das Problem ist das Characterset
beim verbinden mußt Du es mit angeben (lc_type=)
ich selbst benutze lieber Type NONE, da da alles reingeht, was ich brauche ;-)

LG, MRN

migi 20. Jan 2004 15:42

Re: Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
DANKE MyRealName.

Hab einfach bei den Komponenten den CharSet auf 'None' gesetzt. Jetzt funzt es, auch wenn die Tabellen in ISO8... erstellt wurden.

Danke!

Lemmy 21. Jan 2004 06:56

Re: Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
Hi,

wenn Du die DB mit cdem CarSet ISO8859_1 erstellt hast, hast Du dann auch dem Delphiprogramm gesagt, dass es diesen CharSet verwenden soll??

Grüße
Lemmy

MyRealName 21. Jan 2004 11:43

Re: Nicht alle Felder einer Interbase-DB in Delphi verfügbar
 
Das hatte er eben nicht gesagt
Deswegen kam ja der Fehler. Hatte das nämlich vor einiger Zeit auch mal. Hat ganz schön gedauert, bis ich alles wieder auf charset NONE umgestellt hatte. Und dann hatte ich immer noch das Prob, daß jedesmal, wenn ich ein neues Feld von Type Varchar angelegt hatte, er das standardmäßig mit dem WIN_1251 vorbelegt hatte. Mußte die komplette DB neu machen :(

Aber wie gesagt, mit dem lc_type Parameter kann man beim Verbinden das charset angeben, mit welchem er arbeiten soll und dann sieht man auch alle Felder.

LG, MRN


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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