AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenmanipulation (ODBC/Access)
Thema durchsuchen
Ansicht
Themen-Optionen

Datenmanipulation (ODBC/Access)

Ein Thema von LuCSteR · begonnen am 11. Feb 2009 · letzter Beitrag vom 12. Feb 2009
Antwort Antwort
Seite 1 von 3  1 23      
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#1

Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 14:31
Datenbank: MS Access • Version: 2003 • Zugriff über: ODBC
Hi,

ich soll eine Applikation schreiben, die Daten aus einer (noch) lokalliegenden Access Datenbank auslesen und manipulieren können sollte.
Im FormCreate verbinde ich mit der Datenbank, was auch klappt. Auch habe ich über ein SQLQuery und einem DataSource Tabellen/Tabellenspalten in eine DBGrid ausgeben lassen können. Mein Problem ist jetzt:

Wie kann ich Daten manipulieren (DELETE, INSERT INTO, UPDATE,..)? Bzw besser, welche Schritte sind zu tun, das diese Queries auch umgesetzt werden? In der Quelldatenbank, nicht nur im DBGrid.

Ich verstehe da den Zusammenhang noch nicht ganz. Was auch nicht geklappt hat, war eine Systemtabelle anzuzeigen :/

Struktur:

ODBCConnection1 --> SQLTransaction1
ODBCConnection1 --> SQLQuery1 --> DataSource1 --> DBGrid1

Quasi müssten die Informationen, die im DataSource (durch Query gespeist) sind, an die Datenbak gesendet werden. Sicherlich über die SQLTransaction. Aber wie?

Mein Code bisher:
Delphi-Quellcode:
//Benutzer-DSN Name
ODBCConnection1.DatabaseName:='test1';

//wichtig für Queries
SQLQuery1.UsePrimaryKeyAsKey:=false;
SQLQuery1.Active:=true;

//Connect
ODBCConnection1.Connected:=true;
Grüße
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 14:34
Zitat von LuCSteR:
Hi,

ich soll eine Applikation schreiben, die Daten aus einer (noch) lokalliegenden Access Datenbank auslesen und manipulieren können sollte.
Im FormCreate verbinde ich mit der Datenbank, was auch klappt. Auch habe ich über ein SQLQuery und einem DataSource Tabellen/Tabellenspalten in eine DBGrid ausgeben lassen können. Mein Problem ist jetzt:

Wie kann ich Daten manipulieren (DELETE, INSERT INTO, UPDATE,..)? Bzw besser, welche Schritte sind zu tun, das diese Queries auch umgesetzt werden? In der Quelldatenbank, nicht nur im DBGrid.

Ich verstehe da den Zusammenhang noch nicht ganz. Was auch nicht geklappt hat, war eine Systemtabelle anzuzeigen :/

Struktur:

ODBCConnection1 --> SQLTransaction1
ODBCConnection1 --> SQLQuery1 --> DataSource1 --> DBGrid1

Quasi müssten die Informationen, die im DataSource (durch Query gespeist) sind, an die Datenbak gesendet werden. Sicherlich über die SQLTransaction. Aber wie?

Mein Code bisher:
Delphi-Quellcode:
//Benutzer-DSN Name
ODBCConnection1.DatabaseName:='test1';

//wichtig für Queries
SQLQuery1.UsePrimaryKeyAsKey:=false;
SQLQuery1.Active:=true;

//Connect
ODBCConnection1.Connected:=true;
Grüße
indem du das sqlstatement übergibst:
Delphi-Quellcode:
sqlQuery1.sql.clear;
sqlQuery1.sql.add('select blabla ' );
EDIT: funktioniert natürlich auch mit update, insert usw.

gruss KH

[edit=mkinzler]Fehlende Tags ergänzt Mfg, mkinzler[/edit]
Karl-Heinz
  Mit Zitat antworten Zitat
HaJo

Registriert seit: 28. Apr 2004
Ort: Würselen
140 Beiträge
 
Delphi 8 Enterprise
 
#3

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 14:53
Normalerweise macht man das mit:
Zitat:
Delphi-Quellcode:
         try
            SQLQuery1.post;
         except
            SQLQuery1.Cancel;
         end;
Aber Vorsicht, nicht jede SQL-Komponente ist zum ändern gedacht. Manche sind von Hause aus nur lesbar. Das Zauberwort ist hier "RequestLive". Ist diese Eigenschaft vorhanden und auf TRUE gesetzt, können auch im Grid Daten geändert werden.

Dein Satz:
Zitat:
Wie kann ich Daten manipulieren (DELETE, INSERT INTO, UPDATE,..)? Bzw besser, welche Schritte sind zu tun, das diese Queries auch umgesetzt werden? In der Quelldatenbank, nicht nur im DBGrid.
legt nahe, das Du nicht allzu viel Erfahrung mit Datenbanken hast. Kann das sein?

Das was Du da beschreibst sind keine Queries(Fragen) sondern ausführbare Statements(Befehle) die im Verbund mit entsprechenden Daten an jede Datenquelle gesandt werden können.

Die würden dann abgeschlossen mit:
Zitat:
Delphi-Quellcode:
        IF not SQLQuery1.Prepared then
            SQLQuery1.Prepare;
         TRY
            SQLQuery1.ExecSQL
         EXCEPT
         END;
[edit=mkinzler]Auch Profis sollten Delphi-Tags verwenden Mfg, mkinzler[/edit]
Hans-Joachim Brosius
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#4

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 15:00
@Hajo:

Ich arbeite das erste mal mit einer Datenbank. Die Theorie hatte ich in der Vorlesung, was aber nicht weiterhilft bei meinem Problem.

Ich bin davon ausgegangen, das eine SQLTransaction nicht nur Daten holen, sondern auch senden kann. Also Manipulationan der OriginalDB möglich ist.
Bin ja shconmal froh, das ich eine Verbindung aufbauen und Daten auslesen konnte.

Wie läuft denn das ab mit der Manipulation?
Ein Suchwort würde mich auch glücklich machen. Vll. werde ich ja fündig

Im Prinzip will ich mit meiner Applikation nur Daten selktieren und manipulieren in der MS Access DB.

Grüße
  Mit Zitat antworten Zitat
HaJo

Registriert seit: 28. Apr 2004
Ort: Würselen
140 Beiträge
 
Delphi 8 Enterprise
 
#5

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 15:06
na dann, nur Mut

Trotztdem eine Frage noch - kannst Du denn schon absehen ob Du in mehr als einer Tabelle Daten Lesen und ändern können solltest?
Hans-Joachim Brosius
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#6

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 15:13
Wie meinst du das "nur Mut" ^^
Kann mir kaum vorstellen, das mein Vorhaben sehr kompliziert sein kann

Es ist abzusehen das:
- die Datenbank später im Netzwerk liegen wird
- meine Applikation auf jedem PC im Netzwerk laufen sollte (wobei ich da nicht weiss, ob auf jedem eine eigene Benutzer DSN erstellt werden muss, und welche Probleme es dann bei dem gelichzeitigen Zugriffen/Manipulationen geben wird :/)
- eine große Menge von Anfragen und Manipulationen auf/an 13 Tabellen (ca. 20K Datensätze) erolgen werden durch die Nutzer

Wonach kann ich denn jetzt suchen? Scheint ja so, das ich noch einen andere Komponente brauch, außer denen, die ich schon benutze.

danke
  Mit Zitat antworten Zitat
HaJo

Registriert seit: 28. Apr 2004
Ort: Würselen
140 Beiträge
 
Delphi 8 Enterprise
 
#7

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 15:22
Such doch mal hier im Forum nach Datenbank-Beispielen. Ob eines für Access dabei ist, weiß ich nicht.
Aber Beispiele gibt es hier sicherlich.

Kurz zu den Begriffen:
Transaction ist so etwas wie die unsichtbare ausführbare Macht bei Datenbanken. Bei den besseren Datenbanken wird eine solche Transaction für jeden Benutzer oder eine bestimmte Tätigkeit in der DB erzeugt.
Der Vorteil der Transaction ist der: Du oder der Benutzer kann nachher entscheiden Änderungen sind OK also speichern - oder aber Änderungen sind nicht OK also verwerfen.

Soll heissen, mit jeder eröffneten Transaction werden die zu bearbeitenden Daten lokal gespeichert.

Dann entscheidet der Benutzer Top oder flopp.
Bei Top werden die lokalen Änderungen in die DB zurückgeschrieben.
Bei Flopp wird der lokale Speicher gelöscht

Query ist eine visuelle Darstellung des Datenbank-Objektes das Du über Ereignisse und Eigenschaften steuern und dem Benutzer in entsprechender Darreichungsform (Grid, Formular usw.) zum bearbeiten anbieten kannst.
Hans-Joachim Brosius
  Mit Zitat antworten Zitat
HaJo

Registriert seit: 28. Apr 2004
Ort: Würselen
140 Beiträge
 
Delphi 8 Enterprise
 
#8

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 15:28
Ach, nimm das "nur Mut" nicht so ernst

Es ist für Dich nur etwas neues und durch Deine Angaben sicherlich in kurzer Zeit zu bewerkstelligen.

Deinen Angaben zu Folge, würde ich Dir raten, alle Datenbank-Objekte nicht auf dem Hauptformular, sondern in eine eigene DB-Form zu packen um die übersichtlichkeit für später zu sichern.

In der Regel ist das ein Datenbankmodul oder eine spezielle Form um nur Datenbank-komponenten aufzunehmen.
Diese haben in der Regel von Hause aus die Eigenschaft, vor dem Hauptformular geladen zu werden.
Hans-Joachim Brosius
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#9

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 17:06
Mhh, könnte mir jmd. Fachkundiger ein paar Tips/Hinweise geben?

Ich suche seit mehreren Stunden nach einer Lösung hier im Forum. Vll. habe ich sie sogar schon gesehen. Aber da ich sowas noch nie gemacht habe, weiss ich jetzt nimmer wo/-nach ich jetzt noch suchen soll :/

Gibt es niemanden, der schon einmal Daten manipuliert hat per ODBC? Welche DB da am anderen Ende hängt dürfte ja für den Prozess unerheblich sein oder?

Grüße
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#10

Re: Datenmanipulation (ODBC/Access)

  Alt 11. Feb 2009, 17:08
siehe oberen Beitrag ~missclicked~
  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 00:54 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