Autor Beitrag
axlegolas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 09:58 
Hallo und guten morgen.

wollte mal fragen, wie ich eine access db zur laufzeit erzeugen kann. ich hänge momentan an an meinem TableType und DatabaseName. kann es denn sein, daß delphi kein access unterstützt sondern nur paradox oder dbase?

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 10.02.06 10:11 
Denn Zugriff auf eine Access-Datenbank sollte man über ADO machen nicht über die BDE, wie du es vermutlich gerade versuchst. Über ADO/Jet kann man in Delphi einfach auf die Daten einer mdb zugreifen.

_________________
Markus Kinzler.
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 10:37 
Es geht mir dabei nicht um den zugriff, den handle ich mit ADO. Ich muß aber zunächst mal eine Access db erzeugen(Create db)!

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 10.02.06 10:45 
Kannst du über ADi keine Datenbanken erzeugen? In diesem Fall kannst du dir in der BDE einen Alias über ODBC auf die Access-Datenbank anlegen und versuchen darüber einen neue dateu zu erstellen.

_________________
Markus Kinzler.
afk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102

Win 2K, Win XP
Delphi 2006 Arch., Delphi 6 Ent., MS-SQL 2005 & 2000
BeitragVerfasst: Fr 10.02.06 12:27 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function DAOJetCreateDB(DBName: String; Options: Integer = dbVersion30): Boolean;
var
  Engine,
  Workspace: variant;
begin
  Result:=False;
  try
    Engine:=CreateOleObject(DAOMSJet);
    Workspace:=Engine.Workspaces[0];
    Workspace.CreateDatabase(DBName, dbLangGeneral, Options);
    Workspace:=Unassigned;
    Engine:=Unassigned;
    Result:=True;
  except
    on E: Exception do ShowMessage(E.Message);
  end;
end;

So sollte es funktionieren. DBName ist der Dateiname (incl. Pfad) der Datenbank-Datei.

Gruß Axel

_________________
Man muß sparn wo mn knn !
afk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102

Win 2K, Win XP
Delphi 2006 Arch., Delphi 6 Ent., MS-SQL 2005 & 2000
BeitragVerfasst: Fr 10.02.06 12:31 
Hab die Konstanten vergessen ... :oops:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
const
  DAOMSJet = 'DAO.DBEngine.35';
  dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0';

  dbVersion10 = 1;
  dbEncrypt   = 2;
  dbDecrypt   = 4{only used when packing}
  dbVersion11 = 8;
  dbVersion20 = 16{Access 2.0}
  dbVersion30 = 32{Access 95}

Gruß Axel

_________________
Man muß sparn wo mn knn !
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 12:40 
Also des funzt mal gar nicht :nixweiss:
afk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102

Win 2K, Win XP
Delphi 2006 Arch., Delphi 6 Ent., MS-SQL 2005 & 2000
BeitragVerfasst: Fr 10.02.06 14:06 
user profile iconaxlegolas hat folgendes geschrieben:
Also des funzt mal gar nicht :nixweiss:

Was heißt das ?
Compiliert nicht ? Exception ? Legt die DB einfach nicht an ?

Bei mir tut das einwandfrei.

Gruß Axel

_________________
Man muß sparn wo mn knn !
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 14:21 
legt keine db an!!

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
espen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 1


D6 Prof./D7 Prof. MSSQL, MySQL
BeitragVerfasst: Fr 10.02.06 14:24 
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 14:40 
@espen

super link danke für den tip :D

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Fr 10.02.06 15:14 
@espen

da denkt man gerade 'super alles funzt', da kommt das nächste problem....
wie gesagt legt mir mein prog eine mdb an. nun erzeugt es mir aber eigene tabellen, die dann nicht in der datenbank sind. :eyecrazy:

"HIIIIIIIIIIIILFEEEEEEE" :gruebel:

kannst du mir vielleicht noch sagen kannst wie ich das handlen kann?

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
espen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 1


D6 Prof./D7 Prof. MSSQL, MySQL
BeitragVerfasst: Fr 10.02.06 15:33 
Hi nochmal,

da habe ich zwei Lösungsvorschläge:

1. Du erstellst eine (leere) Originaldatenbank, welche Du dann in das entsprechende Verzeichnis kopierst.
2. Du benutzt ADOCommand und führst ein 'Create Table TableName (...)' auf der Access-Datenbank aus (Kopfkratz, weiss (noch) nicht ob das mit Access geht)
Edit:
Doch kein kopfkratz, mit ADOCommand kannst Du die Tabellen erzeugen.


Grüßle
axlegolas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WIN 2000, WIN XP
D 6,D 2006, C#
BeitragVerfasst: Mo 13.02.06 09:16 
morgen erstmal,

ich weiß nicht ganz, ich glaub ich steh aufm' schlauch. habe nun die ADOCommand angelegt. Dann habe ich den connectionstring gesetzt und versuch jetzt mit commandtext und execute die tabelle version in meiner datenbank zu erstellen. aber des funzt nicht wirklich. habe wohl die falsche sql anweisung gegeben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
CreateAccessDatabase(pDatabase);
     //---------------------------------------------
TableSet:= TADOCommand.Create(Self);                               
TableSet.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+pDatabase+';Persist              Security Info=False';
TableSet.CommandText:= 'CREATE TABLE "Version"';
TableSet.Execute;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt

_________________
Jene Menschen die zu Tage träumen sind gefährliche Menschen, denn ihre Träume sind Träume der Veränderung und des Chaos.
espen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 1


D6 Prof./D7 Prof. MSSQL, MySQL
BeitragVerfasst: Mo 13.02.06 14:19 
Tach auch,

also als erstes muss das heissen:
ausblenden Delphi-Quelltext
1:
2:
// **** Ohne "
TableSet.CommandText:= 'CREATE TABLE Version';


Damit wird die Tabelle schon mal angelegt. Allerdings solltest Du der Tabelle noch ein paar
Felder gönnen ;-)
z.B.:
ausblenden Delphi-Quelltext
1:
TableSet.CommandText := CREATE TABLE Version(Feld1 INTEGER NOT NULL, Feld2 VARCHAR(40NOT NULL)