![]() |
Datenbank: Advantage • Version: 9.10 • Zugriff über: Advantage Komponeten
SQL Parameter geht nicht mit ParambyName
Hallo,
ich habe folgendes Problem: Seit dem Umstieg auf Delphi 2010 funktioniert der Zugriff mit Parameter bei einer SQL-Abfrage nicht mehr mit 'ParambyName'. Hier der Code:
Delphi-Quellcode:
Die Fehlermeldung lautet:
procedure TForm1.Button1Click(Sender: TObject);
var Query : TADSQuery; begin Query := TADSQuery.Create(self); Query.DatabaseName := AdsConnection1.Name; Query.SQL.Clear; Query.SQL.Add('SELECT * FROM Benutzer WHERE LOGINNAME = :PName'); Query.ParamByName('PName').Value := 'Programmierung'; Query.Active := true; Label1.Caption := Query.FieldByName('Passwort').AsString; Query.Active := false; Query.Free; end; The field namend 'PName' has a DataType that is not supported. In Delphi 7 hat das alles noch funktioniert. Auch wenn ich schreibe:
Delphi-Quellcode:
bringt keine Veränderung.
Query.ParamByName('PName').asString := 'Programmierung';
Die Datenbank ist eine Advantage 9.1. Hat jemand schon einen ähnlichen Fehler gehabt? Gruss Stefan |
Re: SQL Parameter geht nicht mit ParambyName
Versuch es mal mit:
Delphi-Quellcode:
ich hab die komponente leider nicht in meinem delphi drinne. Probier es einfach mal aus ;-)
Query.Parameters.ParamByName('XYZ').AsString := 'BlaBlaBla';
// oder Query.Params.ParamByName('XYZ').AsString := 'BlaBlaBla'; |
Re: SQL Parameter geht nicht mit ParambyName
Hallo,
funktioniert auch nicht. Der Fehler bleibt. |
Re: SQL Parameter geht nicht mit ParambyName
ist denn die "AdsConnection1" überhaupt aktiv?
Vielleicht kann der Fehler ja daran liegen... (Ich bin kein experte... Ich prüfe nur verschiedene Möglichkeiten) Hast du versucht mit den Standard-Komponenten (Wenn das geht) oder anderen Komponenten auf diese DB zu zu greifen? |
Re: SQL Parameter geht nicht mit ParambyName
Ja, die Connction ist aktiv.
Leider kann man auf diese Datenbank nur mit diesen Komponeten zugreifen. |
Re: SQL Parameter geht nicht mit ParambyName
kannst du bitte mal kennzeichnen in welcher zeile der fehler genau kommt?
Beim "Query.Active := True" nehme ich an, oder? Welchen Datentyp hat die Spalte "LOGINNAME" ? Oder Probiere mal anstatt der "=" ein "like" aus. "[...] WHERE LOGGINNAME like :PName" (Das hat bei meinem SQLite auch geklappt... "=" wollte das mistding nicht... |
Re: SQL Parameter geht nicht mit ParambyName
Ja, der Fehler tritt auf, wenn die Query auf Active gesetzt wird.
Auch das 'Like' geht nicht. Seltsam ist halt, das der gleiche Code in Delphi 7 funktioniert. Es müsste ein Fehler in den Komponenten sein, der Herstellter sagt aber, bei ihm würde das so funktionieren. |
Re: SQL Parameter geht nicht mit ParambyName
Och menno... :cry:
Ich hätte dir wirklich gerne geholfen aber gegen Fehler in der Komponente ( :x ) kann ich nix machen... Ist zwar nicht so schön aber ich glaube du musst den Usernamen manuell einbauen... tut mir leid :( |
Re: SQL Parameter geht nicht mit ParambyName
Sind die Komponenten evtl. nicht unicodefähig? Gibt es eine aktuellere Version?
|
Re: SQL Parameter geht nicht mit ParambyName
Zitat:
Ich dachte das ist der unterstützte Zeichensatz (Bitte korregiere mich wenn ich falsch liege) |
Re: SQL Parameter geht nicht mit ParambyName
In D2010 ist string = UnicodeString in den Komponenten u.U. AnsiString
Unterstützen die Komponenten .asAnsiString? |
Re: SQL Parameter geht nicht mit ParambyName
Zitat:
![]() ![]() |
Re: SQL Parameter geht nicht mit ParambyName
Hab ich es doch geahnt :zwinker:
|
Re: SQL Parameter geht nicht mit ParambyName
ansonsten könnte man das denn nicht hiermit machen?
Delphi-Quellcode:
Utf8ToAnsi()
AnsiToUtf8() |
Re: SQL Parameter geht nicht mit ParambyName
Nein weil UnicodeString nicht UTF-8 sondern UTF-16
|
Re: SQL Parameter geht nicht mit ParambyName
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 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