AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Parameter (GUID) wird nicht gefüllt
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter (GUID) wird nicht gefüllt

Ein Thema von Thanatos81 · begonnen am 21. Apr 2007 · letzter Beitrag vom 21. Apr 2007
Antwort Antwort
Thanatos81
(Gast)

n/a Beiträge
 
#1

Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:19
Datenbank: Firebird • Version: 2.01 • Zugriff über: UIB
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']);
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:22
Wie sieht dei Abfrage dazu aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:38
So:

SQL-Code:
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)
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.

//Edit:
Die Abfrage ist im OI eingetragen, aber laut showMessage(dm.anbieterInsert.SQL.Text) ist sie zu dem Zeitpunkt auch noch da.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:41
Was für ein Typ hat das Feld ID und der Parameter ID?
Markus Kinzler
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:44
Das Feld ID hat als Typ die Domain D_GUID:
CREATE DOMAIN D_GUID AS VARCHAR(38) CHARACTER SET WIN1251; Der Parameter sollte eigentlich den selben Typ haben, da ich die Parameter nur durch den SQL-Text der jeweiligen Query bestimme.

Bei anderen Inserts, die ebenfalls ein Feld ID vom Typ D_GUID haben, klappt das ganze auch anstandslos.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:51
Existieren vielleicht Trigger?
Markus Kinzler
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:55
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 17:57
Ich kenne UIB nicht, aber der Code sieht ja plausibel aus.
Markus Kinzler
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#9

Re: Parameter (GUID) wird nicht gefüllt

  Alt 21. Apr 2007, 18:18
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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