Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ergebnis von AdoCommand? (https://www.delphipraxis.net/96760-ergebnis-von-adocommand.html)

fkerber 30. Jul 2007 15:00

Datenbank: Access • Version: 2007 • Zugriff über: ADO

Ergebnis von AdoCommand?
 
Hi!

Ich hab da ein kleines Problem und habe leider auch im Forum keine Lösung gefunden...

Ich habe eine AdoConnection und ein AdoCommand. Mit letzterem führe ich ein Insert auf meine Access-DB aus. Allerdings wüsste ich schon gerne, ob das ganze von Erfolg gekrönt war.

Es kann ja dann nicht Sinn der Sache sein, danach eine Query auszuführen und den eingetragenen Datensatz zu suchen, oder?

Ich ging davon aus, dass im _recordset, das von AdoCommand.Execute zurückgeliefert wird, drinsteht was passiert ist (z.B. über RecordSet)

Jeglicher Zugriffsversuch endet allerdings mit:

Zitat:

Im Projekt Userverwaltung.exe ist eine Exception der Klasse EOleException mit der Meldung 'Der Vorgang ist für ein geschlossenes Objekt nicht zugelassen' aufgetreten.

Der gesamte Quelltext:

Delphi-Quellcode:
        command:=TAdoCommand.Create(self);
        command.connection:=dbconn.DataModule1.ADOConnection1;
        command.Parameters.AddParameter;
        command.Parameters.AddParameter;
        command.Parameters[0].Value:=Edt_NewUser.Text;
        command.parameters[0].Name:='user';
        command.Parameters[1].Value:=Edt_NewPass.Text;
        command.parameters[1].Name:='pass';
        Command.CommandText:='insert into users ([user],[password]) values (:user,:pass)';
        rs:=Command.Execute; //var rs: _recordset
        showmessage(inttostr(rs.RecordCount));
Wie macht man das richtig?


Ciao, Frederic

mkinzler 30. Jul 2007 15:05

Re: Ergebnis von AdoCommand?
 
Bei .Execute() wird ja keine Ergenismenge erzeugt. Außerdem liefert dein Abfrage ja auch kein Ergebnis

hoika 30. Jul 2007 15:05

Re: Ergebnis von AdoCommand?
 
Hallo,

Execute kann bei bestimmten Befehlen ein Recordset zurückgeben,
Insert gehört aber nicht dazu.

Ich würde mal RecordsAffected versuchen,
es hängt aber von der Datenbank ab, ob sie das auch unterstützt.


Heiko

fkerber 30. Jul 2007 15:11

Re: Ergebnis von AdoCommand?
 
Hi!

Ah, dann war das ein gedanklicher Fehler meinerseits.

Ich dachte, es würde immer zurückgeliefert, was eingefügt oder geupdatet o.ä. wurde...


Ok, dann schaue ich mal nach RowsAffected!
Gesetzt den Fall, das geht nicht, wie geht man denn sicher, dass das Insert funktioniert hat?


Ciao, Frederic

hoika 30. Jul 2007 15:17

Re: Ergebnis von AdoCommand?
 
Hallo,

wie du es schon gesagt hattest,
mit Nachschauen.

Bei einer richtigen Datenbank ;)
sollte ein Commit der Connection reichen,
bei Access ? naja :wall:


Heiko

fkerber 30. Jul 2007 15:22

Re: Ergebnis von AdoCommand?
 
Hi!

Zitat:

Zitat von hoika
Bei einer richtigen Datenbank ;)
sollte ein Commit der Connection reichen,
bei Access ? naja :wall:


Ich habe keine Wahl, der Auftraggeber wünscht Access...

Und o.g. geht bei Access-DB nicht?


Ciao, Frederic

hoika 30. Jul 2007 15:37

Re: Ergebnis von AdoCommand?
 
Hallo,

Commit oder RowsAffected ?

Zum Commit, Access ist eine Desktop-Datenbank ...
Soll ich noch mehr sagen ? ;)

- direkter Dateizugriff
(Netzwerk weg, Daten weg)

- mehrbenutzerfähig vielleicht bis 5 Clients gleichzeitig
hängt aber stark von der Anwendung ab

usw.


Heiko

mkinzler 30. Jul 2007 15:40

Re: Ergebnis von AdoCommand?
 
Zitat:

Ich habe keine Wahl, der Auftraggeber wünscht Access...
Dann sollte man ihn mal über die diversen Probleme/Nachteile von Access aufklären!

hoika 30. Jul 2007 15:47

Re: Ergebnis von AdoCommand?
 
Hallo,

wünscht der Access als Datenbank oder als Entwicklungsumgebung.
Falls zweiteres, es gibt Access-Project,
damit kann man als Datenbank mssql (auch Express) benutzen,
bleibt aber in Access (Foms, Designer, Reports).

Das ganze ist allerdings nicht 100% kompatible,
also entweder Access-Project mit mssql als DB
oder Access pur mit Access als DB.


Heiko

fkerber 30. Jul 2007 22:30

Re: Ergebnis von AdoCommand?
 
Hi!

Access als DB...
Jegliche Versuche, ihn von etwas anderem zu überzeugen scheiterten, da er der Meinung ist, selbst genug Ahnung zu haben....

Dann bleibt wohl danach nicht anderes als ein SELECT blabla übrig?!
Sehe ich das richtig?


Ciao, Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Seite 1 von 2  1 2      

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