AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO Query Parameter zur Laufzeit erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Query Parameter zur Laufzeit erstellen

Ein Thema von Thaleilama · begonnen am 6. Apr 2019 · letzter Beitrag vom 6. Apr 2019
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.589 Beiträge
 
Delphi 7 Professional
 
#1

AW: ADO Query Parameter zur Laufzeit erstellen

  Alt 6. Apr 2019, 17:36
Bei den ADOs nutze ich immer Parameter. Die SQLs werden zur Laufzeit erstellt bzw. aus Konstanten übernommen. Das funktioniert problemlos, genauso, wie Du es ursprünglich vorhattest.

Parameter im SQL darf man aber nicht in "" setzen. Innerhalb der "" wird ein Parameter nicht mehr als solcher erkannt. Er wird dann zum Inhalt einer Stringkonstanten.

Die Fehlermeldung Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar ist eher ein Hinweis auf datenbankseitige Probleme, als auf Implementierungsfehler.

Mir scheint, das die Nummer aus der Datenbank nicht typkompatibel zur Nummer aus Delphi ist.

Von welchem Typ ist die Datenbankspalte Nummer?
Von welchem Typ ist die Delphivariabel Nummer?
  Mit Zitat antworten Zitat
Thaleilama

Registriert seit: 6. Apr 2019
3 Beiträge
 
#2

AW: ADO Query Parameter zur Laufzeit erstellen

  Alt 6. Apr 2019, 19:02
Der Wert der Variablen ist ein Integer, in der Prozedur wurde der Datentyp auf ftInteger gestellt.

Mit der ersten Methode so
Code:
  procedure TQuery.AddIntegerParam(FieldName: string);
  begin
    Parameters.AddParameter.Name := FieldName;
    Parameters.ParamByName(FieldName).DataType := ftInteger;
  end;
und mit der zweiten so

Code:
  procedure TQuery.AddIntegerParam(FieldName: string; Value: Integer);
  begin
    Parameters.CreateParameter(FieldName, ftInteger, pdInputOutput, -1, Value);
  end;
In der Komponente auf dem Formular ist genau das gleiche eingestellt, nur nicht von mir zur Laufzeit erstellt worden. Da klappt es problemlos.
Die Spalte in der Datenbank ist ebenfalls Integer. Hier der CREATE-Code

Code:
  `nummer` INT(11) NOT NULL,
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.232 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ADO Query Parameter zur Laufzeit erstellen

  Alt 6. Apr 2019, 19:27
Mittels ADO-Komponenten über ODBC auf eine MySQL-Datenbank zugreifen.
Das ist m.E. das schlechteste was man machen kann. AFAIK musst du *irgendwelche* Einstellungen (ich glaub im ODBC-Treiber) vornehmen damit es halbwegs funktioniert.

Genaueres kann nicht sagen, da wir ein paar € ausgeben um mit den Zugriff keinerlei Probleme zu haben -> https://www.devart.com/dac.html

Übrigens: Damit umgeht man auch die GPL-Falle von MySQL. So wie du zugreifst müssen deine Kunden, wenn du den Quellcode nicht offen legst MySQL-Lizenzen kaufen!
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 10:08 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