Entwickler-Ecke
Datenbanken - Fehler bei Minimalzugriff auf Access mit ADO - need help!
Uwe.F. - Sa 24.02.07 13:36
Titel: Fehler bei Minimalzugriff auf Access mit ADO - need help!
Hallo liebe Kolleginnen und Kollegen,
ich habe hier ein mittelschweres Problem, bei dem ich einen Tip brauche: ich will minimalistisch mittels ADOTable auf eine ACCESS Datenbank bestehend aus mehreren Tabellen zugreifen. Dabei erhalte ich allein durch die Existenz der Komponente ADOTable (d.h. ohne weitere Programmzeilen) die folgende Fehlermeldung:
Komponente mit der bezeichnung PrimaryKey existiert bereits
Die vollständige Fehlermeldung hänge ich als Dateianhang an.
Und folgende Schritte erzeugen den Fehler:
1. Leeres Form erzeugen (Delphi starten)
2. ADOTable auf das Form ziehen
3. Connectionstring im Dialog aufbauen
4. Verbindung testen: ist erfolgreich
5. Tablename aus Auswahlfeld selektieren --> "Tbl Score" selektieren
6. Active auf True setzen
7. F9 drücken zum Compilieren, Starten und Fehlermeldung lesen :evil:
Das Programm ist in Project1.dpr auf Application.Run stehen geblieben (Debug-Cursor)
Der Hammer ist, die zugehörige Project1.exe läuft (ohne IDE) ohne Fehlermeldung.
Hat irgend jemand eine Idee, woran das liegen könnte?
Ich bin mir ziemlich sicher, dass ich diesen Zugriff im Laufe meiner ersten Gehversuche schon hinbekommen hatte.
Beste Grüße,
Uwe
Delete - Sa 24.02.07 16:02
kann mir jetzt keinen reim drauf machen. kannst mal deinen quelltext und die *.dfm mit dranhängen, danke.
Uwe.F. - Sa 24.02.07 16:43
Es gibt keinen Quelltext - nimm ein leeres Formular und ziehe die ADOTable drauf - thats all. Und genau das ist ja das Merkwürdige.
Ich maches es mal gerade:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm) ADOTable1: TADOTable; private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
end. |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' ;
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Die DFM:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| object Form1: TForm1 Left = 387 Top = 252 Width = 429 Height = 287 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object ADOTable1: TADOTable Active = True ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\EMMA tables 2007' + '.mdb;Persist Security Info=False' CursorType = ctStatic TableName = 'Tbl Score' Left = 16 Top = 16 end end |
So sieht die Konfiguration der ADOTable aus (s. Anhang).
Beste Grüße,
Uwe
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt
Delete - Sa 24.02.07 19:25
kann dein problem nachvollziehen, aber weiss hier keine lösung, da ich nicht mit der ADOTable arbeite. nimm doch einfach 'ne ADOQuery, die funktioniert problemlos :-)
Uwe.F. - Sa 24.02.07 20:02
D.h. Du hast es getestet und bekommst die gleiche Fehlermeldung?
Delete - Sa 24.02.07 20:25
ja, jetzt bekomm ich eine andere fehlermeldung.
wenn du aber 'ne ADOConnection mit vor die ADOTable setzt, funktionierts wiederum problemlos... also schmeiss 'ne ADOConnection auf dein formular, stell den con-string ein und häng deine ADOtable dran... dann solltes funktionieren.
Uwe.F. - So 25.02.07 00:34
Jau - habe ich ausprobiert: geht :D warum auch immer.
Könnte vielleicht ein Fehler im ADO sein?
Na ja, wenn's mit dem Vorschalten der ADOConnect funktioniert, nehme ich es halt so.
Beste Grüße und vielen Dank!
Uwe
Delete - So 25.02.07 00:55
ich weiss es nicht, kann leicht sein. mir ist es jedenfalls noch nie aufgefallen, da ich
- immer mit 'ner query arbeite und
- immer mit 'ner connection
die connection alleine schon um die allgemeinen parameter immer an einem ort zu haben und nur einmal pflegen zu müssen. solltest dir das auch angewöhnen... ausserdem ist die conn auch die voraussetzung damit du mit start transaction/commit work/rollback arbeiten kannst.
wünsch dir noch einen schönen abend.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!