Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FieldByName und SQL (https://www.delphipraxis.net/116136-fieldbyname-und-sql.html)

Cosamia 24. Jun 2008 07:02

Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO

FieldByName und SQL
 
Seit ich von Access auf SQL 2005 umgestiegen bin, habe ich einige Dinge an der Syntax umstellen müssen.
Hat auch mit ein bißchen Nachdenken fast immer funktioniert. Bis auf, dass ich
Delphi-Quellcode:
DOQuery1.FieldByName('OrderFile').AsString := AFileName;
mit FieldByName bei SQL immer auf die Nase falle. Funktioniert das bei SQL nicht mehr, oder muss ich was ändern?

mkinzler 24. Jun 2008 07:04

Re: FieldByName und SQL
 
Sollte eigentlich funktionieren. Versuch mal
Delphi-Quellcode:
DOQuery1.FieldByName('OrderFile').Value := AFileName;

Cosamia 24. Jun 2008 07:07

Re: FieldByName und SQL
 
Das Feld Oderfile wird nicht gefunden, obwohl es da ist.

Muss ich es näher beschreiben?

mkinzler 24. Jun 2008 07:09

Re: FieldByName und SQL
 
Stimmt die Groß-/Keinschreibung?

Cosamia 24. Jun 2008 07:10

Re: FieldByName und SQL
 
ja.

Wie könnte ich denn per SQL einer Variable einen Wert zuweisen? Evtl. gehts ja sorum.

mkinzler 24. Jun 2008 07:12

Re: FieldByName und SQL
 
SQL-Code:
Insert into <Tabelle> set orderfile = :orderfile;

Cosamia 24. Jun 2008 07:13

Re: FieldByName und SQL
 
ok.Ich probiere es gleich mal.

Nehme ich bei der Abfrage SQL.ADD oder SQL.TXT?

mkinzler 24. Jun 2008 07:20

Re: FieldByName und SQL
 
DS.SQL.Text

Cosamia 24. Jun 2008 07:21

Re: FieldByName und SQL
 
Danke.

RavenIV 24. Jun 2008 08:03

Re: FieldByName und SQL
 
Zitat:

Zitat von Cosamia
Seit ich von Access auf SQL 2005 umgestiegen bin, habe ich einige Dinge an der Syntax umstellen müssen.
Hat auch mit ein bißchen Nachdenken fast immer funktioniert. Bis auf, dass ich
Delphi-Quellcode:
DOQuery1.FieldByName('OrderFile').AsString := AFileName;
mit FieldByName bei SQL immer auf die Nase falle. Funktioniert das bei SQL nicht mehr, oder muss ich was ändern?

Wenn Du einem Feld in einer Query einen Wert zuweisen willst, muss es natürlich beim SELECT auch dabeistehen.
'SELECT ..., OrderFile, ... FROM ... WHERE ...'

Cosamia 24. Jun 2008 08:09

Re: FieldByName und SQL
 
ich schaffe es einfach nicht einer Variable einen Wert zuzuweisen

Bei
Delphi-Quellcode:
 
adoquery1.SQL.text := 'select max (ID) from auftraege';
     adoquery1.Open;
     timestamp := adoquery1.FindField('ID').AsString;
schmiert er mir mit einer Zugriffsverletzung ab, und bei

Delphi-Quellcode:
timestamp := adoquery1.fieldbyname('ID').asstring;

findet er das Feld 'ID' nicht, obwohl es da ist.

Ziel ist es einfach nur, der Variable Timestamp den Wert aus ID zuzuweisen. :wall:

Cosamia 24. Jun 2008 08:13

Re: FieldByName und SQL
 
Hat sich erledigt.

So funzt es :

Delphi-Quellcode:
     adoquery1.sql.clear;
     adoquery1.SQL.text := 'select max (ID) as MaxID from auftraege';
     adoquery1.Open;
     timestamp := adoquery1.FindField('MaxID').AsString;

Sharky 24. Jun 2008 08:15

Re: FieldByName und SQL
 
Hai Cosamia,

ich glaube es liegt an deiner SELECT Abfrage. Durch die Funktion MAX() liefert der Server das Ergniss nicht in dem Feld [ID] sondern wahrscheinlich in [Expr1].

Versuche es doch mal so:


Delphi-Quellcode:
 
adoquery1.SQL.text := 'select max (ID) AS max_id from auftraege';
     adoquery1.Open;
     timestamp := adoquery1.FieldByName('max_id').AsString;
[Edit]. grummel... Da tipp ich mir die Flossen wund und er hat schon die Lösung gefunden :stupid:

mkinzler 24. Jun 2008 08:21

Re: FieldByName und SQL
 
Zitat:

[Edit]. grummel... Da tipp ich mir die Flossen wund und er hat schon die Lösung gefunden Stupid
http://www.delphipraxis.net/internal...=907572#907572

RavenIV 24. Jun 2008 08:22

Re: FieldByName und SQL
 
Warum wird eigentlich das selbe Thema des gleichem Authors in zwei Threads behandelt?
Hier ist der andere (fast identische) Thread:
http://www.delphipraxis.net/internal...=907603#907603

Cosamia 24. Jun 2008 08:33

Re: FieldByName und SQL
 
Zitat:

Zitat von RavenIV
Warum wird eigentlich das selbe Thema des gleichem Authors in zwei Threads behandelt?
Hier ist der andere (fast identische) Thread:
http://www.delphipraxis.net/internal...=907603#907603

hast ja vollkommen recht. Habe kurzeitig den Thread verwechselt. Sorry

Cosamia 24. Jun 2008 08:33

Re: FieldByName und SQL
 
Zitat:

Zitat von Sharky
Hai Cosamia,

ich glaube es liegt an deiner SELECT Abfrage. Durch die Funktion MAX() liefert der Server das Ergniss nicht in dem Feld [ID] sondern wahrscheinlich in [Expr1].

Versuche es doch mal so:


Delphi-Quellcode:
 
adoquery1.SQL.text := 'select max (ID) AS max_id from auftraege';
     adoquery1.Open;
     timestamp := adoquery1.FieldByName('max_id').AsString;
[Edit]. grummel... Da tipp ich mir die Flossen wund und er hat schon die Lösung gefunden :stupid:

Trotzdem vielen Dank.

hoika 24. Jun 2008 10:08

Re: FieldByName und SQL
 
Hallo,

hier hätte auch
Delphi-Quellcode:
adoquery.Fields[0]
geholfen.


Heiko


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