Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 07:54
Hast Du vllt. den Gag übersehen?
Nope. Aber Du schreibst.
U.U. ist der Klartext
Code:
select id from data where text='mit doppelpunkt:'
und das wird dann als Parameter interpretiert.
Und darauf bin ich dann eingegangen. Wenn hier also einer den Gag nicht verstanden hat, dann... ach ist doch egal.

Wenn man das allerdings ausprobiert, sieht man, das alles wie gewünscht funktioniert.

Die vom Fragesteller beobachtete Problematik kenne ich nicht und kann mir das auch nicht vorstellen, denn die Query wird vor der Ausführung geparst, ergo beziehen sich alle Probleme bezüglich der Parameter auf den Zeitpunkt *vor* der Ausführung.

Was sein kann ist, das das Dataset mit einem anderen Dataset verknüpft ist und dort dann der Hund begraben liegt. Man kann die ja so verknüpfen, das beim Record-Wechsel in DS1 eine neue parametrierte Query DS2 ausgeführt wird (Datasource-Eigenschaft von DS2 setzen. Dann könnte ein 'Locate' im DS1 zu Problemen führen (wenn die Query in DS2 fehlerhaft ist). Soweit ich mich erinnere muss der Parameter in DS2 einem Feldnamen in DS1 entsprechen.

Aber das ist alles nur Ratenspiel bzw. müsste man das ausprobieren, aber dazu habe ich jetzt keine Lust.
Delphi-Quellcode:
DS1 := 'Select MasterID, moreData from MasterTable';
DataSource1.Dataset := DS1;
DS2.DataSource := DataSource1;
DS2.SQL.Text := 'Select * from Details where MasterID = :MasterID';
Das mal testen. Und dann im DS2.SQL den Parameternamen ändern oder ein Leerzeichen zwischen ':' und 'M' setzen (damit das zu Problemen führt). Dann DS1 öffnen und wieder per Locate wechseln (obwohl das Locate überflüssig wäre, denn es knallt schon beim Öffnen von DS2)

Geändert von Dejan Vu ( 8. Mai 2014 um 07:57 Uhr)
  Mit Zitat antworten Zitat