Entwickler-Ecke

Datenbanken - ADO_Datenbank


flankengott - Mi 14.11.07 16:34
Titel: ADO_Datenbank
Hallo!

Ich arbeite gerade an einem Projekt für einen Arzt.

Mein Problem dabei ist:

ich habe ein edit feld, mit dem ich in meiner acess db nach dem familiennamen suchen kann.
ich habe mir ein 2 adodatset auf die form gelegt und den tag



SQL-Anweisung
1:
2:
3:
select *  from Daten8i

where Familienname like :Suchname


und später in da onklick meines buttons

adodataset2.Close;
adodataset2.Parameters.ParamValues['Suchname'].asstring:=edit1.text+'%';
adodataset2.Open;

geschrieben.

wieso funktioniert das bitte nicht?

vielleicht wisst ihr weiter.


Agawain - Mi 14.11.07 16:42

hi

versuchs mal mit dem * als Jokerzeichen, da msaccess


covel - Mi 14.11.07 16:44

Hi,

ich bin mir nicht sicher aber probier mal:

adodataset2.active:= true


flankengott - Mi 14.11.07 16:58

hm

ich meine natürlich adoquery nicht dataset.

ich habe beide vorschläge ausprobiert, doch es kommt immer noch die gleiche fehlermeldung:

"variante referenziert kein Automatisierungsobjekt"


covel - Mi 14.11.07 17:17

Also ich habe das immer wie folgt gemacht:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
query := TADOQuery.Create(self);
query.Connection := xyz;
query.Close;
query.SQL.Clear;
query.sql.add('Select bliblablub...');
query.ExecSQL;
query.Close;
query.free;



ich hoffe das hilft dir, ansonsten kann ich dir folgenden link : http://delphi.about.com/od/database/a/databasecourse.htm empfehlen


flankengott - Mi 14.11.07 22:09

irgendwie find ich den fehler nicht.

komischerweise ist es mit einem "normalen" query kein problem, natürlich brauch ich eine delphi db - paradox...
doch access is halt doch funktionaler.


vielleicht kommt jemand drauf :(

PS: weis einer von euch, wieso bei jedem start des progis ein fenster kommt, sehr klein aber, wo drinn steht ADO qausi anmelden...
?!?!?!


lg


alzaimar - Mi 14.11.07 23:03

Ich vermute mal, dein ADODataset ist nicht mit einer ADOConnection verbunden bzw. Du hast keinen ConnectionString definiert.


flankengott - Mi 14.11.07 23:20

habe ich eigentlich beides.

bei adoquery kann man entweder connection oder connectionsstring einstellen, aber keinesfalls beides, aber den connectionstring würd ich mir ja im prinzip sparren weil ich die tabelle ja so und so beim adodataset reingegladen bzw. eingebunden habe!!!

mfg


alzaimar - Do 15.11.07 08:47

Da hilft nur eines:
Demo-Projekt erstellen, das den Fehler reproduziert und hier einstellen.


iKilledKenny - Do 15.11.07 09:22

Setze


Delphi-Quelltext
1:
AdoConnection.LoginPrompt := False;                    


dann wird die Anmeldung nicht mehr erscheinen.


alzaimar - Do 15.11.07 11:10

Das
user profile iconiKilledKenny hat folgendes geschrieben:

Delphi-Quelltext
1:
AdoConnection.LoginPrompt := False;                    

Löst das
user profile iconflankengott hat folgendes geschrieben:

PS: weis einer von euch, wieso bei jedem start des progis ein fenster kommt, sehr klein aber, wo drinn steht ADO qausi anmelden...?!?!?!

Aber nicht das:
user profile iconflankengott hat folgendes geschrieben:
Ich habe beide vorschläge ausprobiert, doch es kommt immer noch die gleiche fehlermeldung:
"variante referenziert kein Automatisierungsobjekt"


Und dafür bastest Du dir jetzt mal ein Beispielprojekt.


iKilledKenny - Do 15.11.07 11:22

Nichts anderes hatte ich geschrieben... :gruebel:


alzaimar - Do 15.11.07 12:10

Hups. Hatte ich übersehen...


Agawain - Do 15.11.07 12:45

hi

eine Erkärung für dieses Verhalten, wäre hier nachzulesen

http://entwickler-forum.de/archive/index.php/t-12791.html


flankengott - Do 15.11.07 13:37

hm

wie kann man im objektinspektor sql was zuweißen?...


mfg


Robert.Wachtel - Do 15.11.07 14:02

user profile iconflankengott hat folgendes geschrieben:
[...] wie kann man im objektinspektor sql was zuweißen?... [...]

z.B. mit Tipp-Ex... :mrgreen:

SCNR

Acho so, Du meintest zuweisen? Normalerweise einfach auf die drei Punkte neben der Eigenschaft klicken...


Agawain - Do 15.11.07 14:19

hi

so wie ich es verstanden habe und die Fehlermeldung interpretiere existiert
der Parameter oder die Parametercollection nicht. Nun kann ich leider nicht nachgucken, weil ich hier kein ADO habe.

Aber probier mal mit dem Command-Objekt zu arbeiten, mir scheint nach den Ausführungen von Andreas Kosch, daß es egal ist, was Du mit dem OI machst,
das ganze Zeug wird nachher von dem COM-Objekt zusammenbastelt.

Dazu muß man erstmal die Parameters createn.


Delete - Mo 19.11.07 00:01

im übrigen sieht 'n sql statement mit like so aus: select * from daten8i where familienname like "%bla";
also in deinem fall, ohne parameter...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
with query do 
begin
 sql.clear;
 sql.add('select * from daten8i where familienname like ' + quotedstr('%' + edit1.text);
 open;
 ...


<HTH>


flankengott - Mi 21.11.07 12:29

danke, aber das funktioniert auch nicht.
ich klicke wie ein wahnsinniger auf den button und nichts geschieht.

wenn ich das adoquery active=true setzen will, kommt eine meldung dass ich select usw. verwenden soll!

lg


MarkusB - Sa 24.11.07 09:17

Moin flankengott!

Das habe ich ausprobiert (ist OK.):


SQL-Anweisung
1:
2:
3:
4:
5:
6:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from tabelle1');
ADOQuery1.SQL.Add('where persname like :vname');
ADOQuery1.Parameters.ParamByName('vname').Value := 'T%';
ADOQuery1.Open;


Viele Grüße
markus