AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi wie nutze ich dbedit und ähnliches bei sql?
Thema durchsuchen
Ansicht
Themen-Optionen

wie nutze ich dbedit und ähnliches bei sql?

Ein Thema von BBoy · begonnen am 22. Aug 2016 · letzter Beitrag vom 22. Aug 2016
Antwort Antwort
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#1

wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 12:17
Datenbank: sqlite3 • Version: ? • Zugriff über: sqlconnection
Ich habe eine SQL Datenbank mit zwei Tabellen.
Datensätze hinzufügen, Editieren usw ist alles kein Problem. Bei Auswahl eines Datensatzes fülle ich die edit felder so:
Code:
 
edit2.Text := sqlquery1.FieldByName('name').Asstring;
edit3.Text := sqlquery1.FieldByName('vorname').Asstring;
Da es nur wenige sind, ist das auch ok. Nun möchte ich allerdings ein Grid mit den Daten aus tabelle2 füllen und da wäre diese Art etwas umständlich. Daher dachte ich mir ein DBGrid zu verwenden.

Auf meinem Formular habe ich nur eine sqlconnection und ein sqlquery.
Daten füge ich so hinzu:
Code:
FSQLCommandText := 'INSERT INTO customers (Name,vorname,wohnort) VALUES ('+name+','+vorname+', '+wohnort+');';
SQLConnection1.ExecuteDirect(FSQLCommandText);
Bestimmte Datensätze finde ich so:
Code:
SQLBefehl:='SELECT * FROM customers WHERE id = '+id+';';
SQLQuery1.SQL.Text := SQLBefehl;
SQLQuery1.Active := true;
Kann mir bitte jemand erklären was ich tun muss um ein dbgrid verwenden zu können?
Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 12:21
Du brauchst eine Datasource (kannst du auch aufs Formular ziehen). Der Datasource weißt du dann deine Query zu und dem DBGrid weißt du die Datasource zu

Also

DBGrid.Datasource = Datasource;
Datasource.Dataset = Query;

Mit allen anderen DB-Komponenten funktionierts genaus.
Du brauchst auch nur 1 Datasource die du dann allen DB-Komponenten zuweisen kannst.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 13:01
Dann kommt die Fehlermeldung "Die Operation ist bei einer unidirektionalen Datenmenge nicht gestattet"
Edit:// Also wenn ich versuche der Datasource das Query zuzuweisen.
Verwendet habe ich Tsqlquery und Tsqlconnection.

Geändert von BBoy (22. Aug 2016 um 13:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 13:29
Dann versuch es mal mit einem ReadOnly:=True bei Deinem Grid.

Gruß
K-H

P.S.
Könnte mir jemand die Fragestellung aus der Überschrift erklären?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (22. Aug 2016 um 13:31 Uhr)
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 13:38
Habe mich falsch ausgedrückt.

Die Fehlermeldung "Die Operation ist bei einer unidirektionalen Datenmenge nicht gestattet" kommt wenn ich versuche der Datasource die Eigenschaft DataSet dem query zuzuweisen. Habe die Tdatasource auf das Formular gezogen und nehme dort die Einstellungen vor.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 13:46
Liefert denn die Query eine beschreibbare Datenmenge zurück? Bei Oracle zB muss man die RowID mit selektieren.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 14:03
Ich habe die Tsqlquery schon auf meinem Formular.
Soweit funktioniert mein Programm auch.

Nun habe ich eine Tdatasource auf das Formular gezogen. Sobald ich die Eigenschaft DataSet auf SqlQuery1 stelle, kommt die Fehlermeldung. Es geht also nicht.

Ich kann aber von der SqlQuery die Eigenschaft DataSource auf DataSet stellen. Aber das bringt mir anscheinend nichts.

Wie gesagt, ziel ist es dbedit, dbgrid usw zu nutzen.
Abgesehen davon ist meine Datenbank voll funktionsfähig.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#8

AW: wie nutze ich dbedit und ähnliches bei sql?

  Alt 22. Aug 2016, 14:14
Dann kommt die Fehlermeldung "Die Operation ist bei einer unidirektionalen Datenmenge nicht gestattet"
Du hast eine unidirektionale Datenmenge (query), benötigts aber eine bidirektionale. Das kann man i.d.R. bei der query einstellen.
  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 04:38 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