AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL - Zugriff, evtl. sogar ohne BDE
Thema durchsuchen
Ansicht
Themen-Optionen

SQL - Zugriff, evtl. sogar ohne BDE

Ein Thema von Evilboyz · begonnen am 17. Feb 2003 · letzter Beitrag vom 25. Mai 2003
Antwort Antwort
Seite 1 von 3  1 23      
Evilboyz

Registriert seit: 14. Jan 2003
78 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

SQL - Zugriff, evtl. sogar ohne BDE

  Alt 17. Feb 2003, 13:51
Hi,

auf Datenbanken habe ich bisher nur in PHP zugegriffen und bin deshalb, etwas verwöhnt, was das betrifft.
Nun suche ich nach einer möglichst einfachen Möglichkeit, auf einen MS-SQL Server aus meinem Delphi-Code heraus zuzugreifen.
Bisher habe ich TQuery verwendet und es sieht so aus, als würde alles funktionieren!
Aber nun möchte ich irgendwie an die Rückgabewerte meines Select kommen und die banale Frage, wie ich das anstelle, beschäftigt mich nun schon eine ganze Weile


PS: Hat irgendjemand vielleicht eine Idee, wie ich relativ einfach sogar ohne BDE zugreifen kann??
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2
  Alt 17. Feb 2003, 14:45
Hi,

es gibt im Netz freie Komponenten für die Zugriffe auf diverse Datenbanken. Ich habe selber schon mal Kompos von zeos verwendet. Leider habe ich momentan die Adresse nicht parat. Wenn Deine Suche wenig Erfolg hat, gib Bescheid. Dann frag ich einen Bekanten der die Adresse bestimmt noch hat.

Über google mit dem Stichwort zeos kommst du auf jeden Fall weiter. Schau aber genau ob die Kompos frei sind.

Gruß oki
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#3
  Alt 17. Feb 2003, 17:20
ganz einfach:
nimm eine TSQLQuery
mit
SQLQuery1.SQL.Add('SELECT spalte FROM tabelle'); holst du dir die daten
in ne variable bekommst du sie mit
Delphi-Quellcode:
SQLQuery1.Open;
SQLQuery1.First;
variable:= SQLQuery.FieldValues['spalte'];
die funktion liefert nen variant zurück, du kannst also als VARIABLE String nehmen oder wenn du Zahlen hast Integer/Real --> wird automatisch erkannt
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#4
  Alt 17. Feb 2003, 20:29
Es ist ganz einfach:

Nach Ausführen einer SQL-Anweisung, ist die Query mit dem Ergebnis dieser Abfrage gefüllt.

Man kann dann die Query als Tabelle betrachen (was sie nicht natürlich nicht ist) und jeden Datensatz auswerten. Bei keinem Ergenis ist die Query leer!
  Mit Zitat antworten Zitat
Evilboyz

Registriert seit: 14. Jan 2003
78 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5
  Alt 18. Feb 2003, 09:55
Guten Morgen und vielen Dank für die Info, so sollte es funktionieren!
Allerdings habe ich jetzt ein weiteres Problem:
In der Zeile
Code:
Form1.Query.SQL.Add('SELECT Info FROM Tab1 WHERE ID='+GetWord(sIncome, 'nx', 1));
bricht meine Anwendung mit einem Fehler ab und ich habe im Moment keine Idee, woran das liegen könnte. GetWord gibt im übrigen einen Wert zurück, die Funktion funktioniert also fehlerfrei.
Was mir außerdem noch aufgefallen ist, ist die Tatsache, dass jedesmal, wenn meine Anwendung eine Verbindung zur Datenbank herstellt, ein Fenster erscheint, in dem ich zur Eingabe des Kennwortes aufgefordert werde. Kann ich dieses Fenster irgendwie umgehen, indem ich die Daten direkt in den Code schreibe?
  Mit Zitat antworten Zitat
Evilboyz

Registriert seit: 14. Jan 2003
78 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6
  Alt 18. Feb 2003, 10:33
Naja, ich muss meine Aussage von eben etwas korrigieren, die Exception tritt bei "Query.Open;" auf, ich kann den Fehler also doch nicht so genau lokalisieren, wie ich das eben noch dachte!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7
  Alt 18. Feb 2003, 10:53
Zitat von Evilboyz:
... ein Fenster erscheint, in dem ich zur Eingabe des Kennwortes aufgefordert werde. Kann ich dieses Fenster irgendwie umgehen, indem ich die Daten direkt in den Code schreibe?
Schau mal im OI nach "LoginPrompt", das steht bestimmt auf true.
Gruß
Hansa
  Mit Zitat antworten Zitat
Evilboyz

Registriert seit: 14. Jan 2003
78 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8
  Alt 18. Feb 2003, 11:02
Im OI existiert bei mir keine Eigenschaft "LoginPrompt", kann das sein??
Ich habe eine Komponente TQuery in meinem Formular und unter Databasename verweise ich auf ein Alias. Fehlt mir da noch eine zweite Komponente?
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9
  Alt 18. Feb 2003, 11:12
Hallo Evilboyz,

wenn ich nicht irre, greifst Du auf einen MS-SQL-Server zu. Da Du die Enterprise-Version von Delphi 5 hast, würde ich Dir empfehlen, die ADO-Komponenten zu benutzen (sofern die bei dieser Version dabei sind).
  Mit Zitat antworten Zitat
Evilboyz

Registriert seit: 14. Jan 2003
78 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10
  Alt 18. Feb 2003, 11:41
Ja, die ADO-Komponente ist dabei und ich hab das jetzt auch mit ADO versucht. Soweit ich das sehe, ist diese Komponente in der Handhabung weitgehend identisch mit der "normalen" TQuery. Frage am Rande: welchen Vorteil bringt mir ADO dabei?
Jedenfalls habe ich auch mit ADO noch das gleiche Problem. Mir scheint, dass ich was grundlegendes vergessen habe!
Auf meinem Formular befindet sich also eine TADOQuery. Die Verbindung mit der Datenbank scheint zu funktionieren, "Verbindung testen" gibt mir auf alle Fälle grünes Licht.
mein Code für den Zugriff sieht nun wie folgt aus:
Code:
Form1.Query.Active:=false;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add('SELECT Info FROM Table1 WHERE test='+GetWord(sIncome, 'nx', 1));
Form1.Query.Open;
Form1.Query.First;
sResult:= Form1.Query.FieldList.Values['Info'];
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz