Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Query CreateParameter (https://www.delphipraxis.net/125165-ado-query-createparameter.html)

mrose 1. Dez 2008 21:35

Datenbank: MS-Access • Version: 2003 • Zugriff über: ADO

ADO Query CreateParameter
 
Hallo,

ich steh' gerade etwas auf'm Schlauch.

In meinem Programm will ich mir einen Query zusammenbauen. Zu dem Zweck addiere ich zum SQL eines ADOQueries Zeilen. Das funktioniert auch. Da ich aber auch SQL Statements einbauen muss, welche z.B. TimeStamps oder ":" beinhalten, habe ich in meinem Statetents Parameterreferenzen eingebaut z.B. in der Form

:C7

Da die Anzahl der Parameter von Abfragefall zu ABfragefall unterschiedlich sein kann, will ich mir die Parameter zur Laufzeit erzeugen. Ich schmeisse also erst alles weg (SQL.Clear), Addieren dann die SQL Zeilen zum Query und versuche dann die Paramter zu erzeugen in der Form:

Delphi-Quellcode:
        ADOQuery1.Parameters.CreateParameter('C'+inttoStr(i),ftString,pdInput,-1,Params[i]);
(i ist tatsächlich ein Integer, Params[i] ist ein array of string und für das folgende Beispiel habe ich auch für i=7 einen Wert in Params[i] stehen)

Die Anweisung wird auch im Eizelschrittmode problemlos ausgeführt.

Wenn ich aber gleich in der nächsten Zeile des Codes schreibe:

Delphi-Quellcode:
    hallo := AdoQuery2.Parameters.ParamByName('C7').Value;
dann bekomme ich zur Laufzeit einen Fehler (C7 sollte hier m.E. ja existieren): Variante des Typs (Null) konnte nicht in Typ String umgewandelt werden...

Wo liegt mein Denkfehler. Bin für jede Idee dankbar...

Matthias

Sir Rufo 1. Dez 2008 21:38

Re: ADO Query CreateParameter
 
Den SQL-Text eintragen (mit den gewünschten Parametern)
SQL-Code:
SELECT * FROM MeineTabelle WHERE MeinDBFeld=:MeinParameter
Und dann mal mit ADOQuery1.ParseSQL( ADOQuery1.SQL.Text ) drübergehen

cu

Oliver

mrose 1. Dez 2008 21:58

Re: ADO Query CreateParameter
 
Hallo Oliver,

:-D

Anderer Weg, gleiches Ziel, funktioniert, Danke!

Matthias


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