![]() |
Datenbank: Firebird • Version: 2.01 • Zugriff über: UIB
Parameter (GUID) wird nicht gefüllt
Hallo zusammen!
Ich sitze gerade am ersten Projekt mit Firebird 2.01 und Zugriff per UIB. Funktioniert soweit eigentlich ganz gut. Nur ein Insert funktioniert nicht. Im Quelltext unten findet ihr zwei showMessages, das erste zeigt einen korrekten Wert an, das zweite einen leeren String. dm.anbieterInsert ist om Typ TJvUIBQuery. Mein Problem ist halt, dass die GUID nicht in dem Parameter ID landet, dieser aber mein Primär-Index ist. Und ein leerer Primär-Index führt nun mal zu Problemen ;-) Jemand ne Idee, woran es liegen könnte? Danke im Voraus, Thomas
Delphi-Quellcode:
var
GUID: TGUID; bemerk: string; guids: string; begin screen.Cursor := crHourglass; if (trim(leName.Text) <> '') then if cbBranche.ItemIndex > -1 then begin dm.anbieterInsert.Close; CreateGUID(guid); guids := GUIDToString(guid); showMessage(guids); dm.anbieterInsert.Params.ByNameAsString['ID'] := guids; showMessage(dm.anbieterInsert.Params.ByNameAsString['ID']); |
Re: Parameter (GUID) wird nicht gefüllt
Wie sieht dei Abfrage dazu aus?
|
Re: Parameter (GUID) wird nicht gefüllt
So: ;-)
SQL-Code:
Falls ihr den den Rest der Prozedur auch noch braucht, kann ich den gerne posten, dachte aber das dürfte der wichtige Abschnitt sein und wollte nicht zu viel Unübersichtlichkeit schaffen.
INSERT INTO T_ANBIETER (ID,
NAME, BRANCHE, STRASSE, HAUSNR, PLZ, ORT, TELEFON, MOBILNR, FAXNR, EMAIL, BEMERKUNGEN, ANSPRECH_VORNAME, ANSPRECH_NACHNAME) VALUES (:ID, :NAME, :BRANCHE, :STRASSE, :HAUSNR, :PLZ, :ORT, :TELEFON, :MOBILNR, :FAXNR, :EMAIL, :BEMERKUNGEN, :ANSPRECH_VORNAME, :ANSPRECH_NACHNAME) //Edit: Die Abfrage ist im OI eingetragen, aber laut showMessage(dm.anbieterInsert.SQL.Text) ist sie zu dem Zeitpunkt auch noch da. |
Re: Parameter (GUID) wird nicht gefüllt
Was für ein Typ hat das Feld ID und der Parameter ID?
|
Re: Parameter (GUID) wird nicht gefüllt
Das Feld ID hat als Typ die Domain D_GUID:
SQL-Code:
Der Parameter sollte eigentlich den selben Typ haben, da ich die Parameter nur durch den SQL-Text der jeweiligen Query bestimme.
CREATE DOMAIN D_GUID AS VARCHAR(38) CHARACTER SET WIN1251;
Bei anderen Inserts, die ebenfalls ein Feld ID vom Typ D_GUID haben, klappt das ganze auch anstandslos. |
Re: Parameter (GUID) wird nicht gefüllt
Existieren vielleicht Trigger?
|
Re: Parameter (GUID) wird nicht gefüllt
Es gibt in der DB nur einen Trigger der als Before-Insert auf eine andere Tabelle achtet, um AutoIncs zu setzen.
Aufgrund deiner Fragen nehme ich aber mal an, dass du am eigentlichen Delphi-Code auch keine Fehler entdeckst? |
Re: Parameter (GUID) wird nicht gefüllt
Ich kenne UIB nicht, aber der Code sieht ja plausibel aus.
|
Re: Parameter (GUID) wird nicht gefüllt
Tja, dann werd ich mal heute abend oder morgen vormittag die Setter-Prozedur von Params.ByNameAsString durch steppen und schauen wo er da raushaut... Trotzdem danke für deine Bemühungen!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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