Autor Beitrag
lambruco
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Mo 02.06.03 14:57 
Hallo Forum,

ich hab da mal ein kleines Problem. Ich soll eine Konsolen Applikation programmieren, die eine Access-Datenbank erzeugt und anschliessend einen strukturierten Text importiert. Das ganze wird über eine INI-Datei konfiguriert. Den INI-Kram kann ich, aber eine Access-DB erzeugen, bzw. Daten in DB importieren??? Nennt mir doch mal ein paar Stichwörter oder noch besser ein Beispiel.

gruß aus HH
Lars
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 02.06.03 15:50 
Hallo,

ich würde ein leere Access-DB in die Resource der Anwendung aufnehmen und dann bei bedrf Extrahieren. Beispiele sollten im Forum zu finden sein.

Auf die DB kannst du dann am besten per DAO oder ADO zugreifen.

Gruß
Klabautermann
lambruco Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Mi 04.06.03 09:36 
Titel: Klappt nicht
Ich weiss nicht, ob es an der Konsolen Anwendung liegt aber
wenn ich den AdoConnection.ConnectionString setze, dann passiert
garnichts, bzw. das Programm verabschiedet sich einfach ohne Fehlermeldung. Hier der Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function TDataModule1.CreateDatabase(dbName : String) : boolean;
var
   dataSource : String;
begin
   dataSource := 'Provider=Microsoft.Jet.OLEDB.4.0' +
                        ';Data Source=dbName;Persist Security Info=False';
   ADOConnection1.LoginPrompt := False;
   ADOConnection1.ConnectionString := dataSource;
end;


Hab ich irgendetwas vergessen ???
Benutze Delphi 6 und Win2000 Server.

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 04.06.03 10:16 
Titel: Re: Klappt nicht
Hallo,
lambruco hat folgendes geschrieben:
Ich weiss nicht, ob es an der Konsolen Anwendung liegt aber wenn ich den AdoConnection.ConnectionString setze, dann passiert garnichts, bzw. das Programm verabschiedet sich einfach ohne Fehlermeldung.

Versuche es mal so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function TDataModule1.CreateDatabase(dbName : String) : boolean;
var
   dataSource : String;
begin
   dataSource := 'Provider=Microsoft.Jet.OLEDB.4.0' +
                        ';Data Source=' + dbName + ';Persist Security Info=False';
   ADOConnection1.LoginPrompt := False;
   ADOConnection1.ConnectionString := dataSource;
   ADOConnection1.Connected := TRUE;
end;


Gruß
Klabautermann
lambruco Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Mi 04.06.03 11:27 
Titel: Satz mit x
Hab ein wenig weiter getestet und glaube, es liegt daran, dass es als
application-console laufen soll.
hab ein datenmodul erstellt mit einem adoconnection , den connectionstring korrekt eingegeben und getestet, anschliessend 2
billige funktionen zum öffnen und schliessen geschrieben.
wenn ich jetzt eine standard-application mit zwei buttons benutze,
klappt alles wunderbar.
benutze ich dieses datenmodul in einer consolen-application, dann
kommt eine access-violation.
anscheinend kann man von der console nicht auf die db zugreifen,
oder gibt es da einen trick ????
lambruco Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Mi 04.06.03 13:06 
Titel: selbstgespräch
hab das consolenproblem gelöst, musste activeX einbinden und coInitialize
benutzen oder so ähnlich.

Aber wie erzeugt man jetzt eine leere access-db ???

einfach filecreate('db.mdb') kann es ja nicht sein, oder ??