AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SQL query

Ein Thema von value is NULL · begonnen am 27. Sep 2010 · letzter Beitrag vom 28. Sep 2010
Antwort Antwort
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

AW: SQL query

  Alt 27. Sep 2010, 15:27
Hab jetzt versucht mir das ganze zu vereinfachen und eine unit zu schreiben:

Delphi-Quellcode:
unit sqlst;

interface

uses
  SysUtils,db,adodb,activex;

function connect(): string;
function query(query : string) : string;
function close(): string;

var
  conn : TADOConnection;
  query1 :TADOQuery;

IMPLEMENTATION

function connect(): string;
begin
try
  CoInitialize(nil);
  Conn := TADOConnection.Create(nil);
  Conn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info = False;Initial Catalog=test;Data Source=localhost';
  Conn.Connected := true;
except
  on e : exception do begin
    writeln(e.message);
    halt(1);
  end;
end;
end;

function query(query : string) : string;
begin
try
  query1 := TADOQuery.Create(nil);
  query1.Connection := Conn;
  query1.SQL.Text := query;
  query1.Active := True;
except
  on e : exception do begin
    writeln(e.message);
    halt(1);
  end;
end;
end;

function close(): string;
begin
try
  query1.SQL.Clear;
  query1.close;
except
  on e : exception do begin
    writeln(e.message);
    halt(1);
  end;
end;
end;


end.
ABBEERR ich habe ja nun das problem, das ich an dieser stelle:
Delphi-Quellcode:
function query(query : string) : string;
begin
try
  query1 := TADOQuery.Create(nil);
  query1.Connection := Conn;
  query1.SQL.Text := query;
  query1.Active := True;
except
  on e : exception do begin
    writeln(e.message);
    halt(1);
  end;
end;
end;
und zwar genau an dieser Stelle  query1.SQL.Text := query; ich muss hier ja auch diesen wert überegeben... wie könnte ich das lösen?

mir fehlt praktisch diese zeile:

 query.FieldbyName('wert').asstring LG und DANKE

Geändert von value is NULL (27. Sep 2010 um 15:30 Uhr) Grund: update
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: SQL query

  Alt 27. Sep 2010, 16:05
Hi,

Du solltest den Parameter der Funktion nicht genauso wie die Funktion selber nennen !

Delphi-Quellcode:
function query(sQuerySQL : string) : string;
Var oTmpQry : TAdoQuery;
begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    result := oTmpQry.FieldbyName('wert').asstring
  except
    on e : exception do begin
      writeln(e.message);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#3

AW: SQL query

  Alt 28. Sep 2010, 07:08
In #19 schreibst Du 3 Funktionen, die jeweils als Rückgabewert
einen String haben sollen. Allerdings passiert da nichts. Nirgendwo ein  Result := 'Blabla' Dann kannst Du auch gleich eine procedure draus machen. Oder
Du gibst etwas sinnvolles zurück, was in der aufrufenden Routine auch verwertet wird.

Wie universell sollen denn Deine Funktionen sein. Dienen sie nur
dazu, das count(*) zurückzugeben oder soll das eine Art Blackbox
werden? Wenn letzteres, musst Du das Ganze noch etwas aufbohren.
Ich denke, Beispiele findest Du hier in der DP bis zum Abwinken.
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#4

AW: SQL query

  Alt 28. Sep 2010, 07:42
Hi Data

habe die function soeben probiert, bekomme aber ständig: "Field 'wert' not found" zurück

was will er da von mir?

LG und DANKE!

PS: P80286 Danke für die Erklärung, es ist nun wesentlich deutlicher !

Geändert von value is NULL (28. Sep 2010 um 07:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#5

AW: SQL query

  Alt 28. Sep 2010, 08:01
Hast Du in der Abfrage auch einen Alias namens "wert" vergeben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: SQL query

  Alt 28. Sep 2010, 08:22
Hi Data

habe die function soeben probiert, bekomme aber ständig: "Field 'wert' not found" zurück

was will er da von mir?

LG und DANKE!

PS: P80286 Danke für die Erklärung, es ist nun wesentlich deutlicher !
Hi,

das Feld 'Wert' in der von mir geschriebenen Function war nur als Platzhalter gedacht !
Wenn Du z. B. einen SQL hast: "Select Count(*) as Anz from tablenname"
dann müßte in meiner function 'Wert' mit 'Anz' ersetzt werden,
also der Name des gesuchten Feldes den Du auslesen möchtest.

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#7

AW: SQL query

  Alt 28. Sep 2010, 08:33
hm, und was sagt mir das jetzt?
steh gerade an

LG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#8

AW: SQL query

  Alt 28. Sep 2010, 08:46
Ohne Alias:
Delphi-Quellcode:
Query.SQL.Text := 'SELECT COUNT(*) FROM Tabelle';
Query.Open;
IntVar := Query.Fields[0].AsInteger;
Mit Alias:
Delphi-Quellcode:
Query.SQL.Text := 'SELECT COUNT(*) AS Anzahl FROM Tabelle';
Query.Open;
IntVar := Query.FieldByName('Anzahl').AsInteger;
Im letzteren Fall kannst Du über FieldByName über das benannte Feld zugreifen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#9

AW: SQL query

  Alt 28. Sep 2010, 11:16
cool

so hats geklappt

Delphi-Quellcode:

function query(sQuerySQL : string) : string;

begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    result := oTmpQry.Fields[0].asString;
  except
    on e : exception do begin
      writeln(e.message);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
ich danke euch VIELMAS!!!!

LG
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:44 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