AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit ADOX und D7 Personal
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit ADOX und D7 Personal

Ein Thema von Legolas · begonnen am 11. Aug 2004 · letzter Beitrag vom 11. Aug 2004
Antwort Antwort
Benutzerbild von Legolas
Legolas

Registriert seit: 28. Sep 2003
Ort: Frankfurt am Main
72 Beiträge
 
Delphi 2005 Personal
 
#1

Probleme mit ADOX und D7 Personal

  Alt 11. Aug 2004, 13:19
Hallo alle zusammen,

wie mann links erkennen kann benutze ich D7 Personal. Nun wollte ich mal ein bisschen mit Access Datenbanken rumspielen und habe auch einige Infos in Bezug auf die Benutzung der ADOX_TLB's gefunden.

Folgenden Code habe ich bisher nur mal so zum Testen geschrieben. es wird auch eine Datenbank erstellt, das funktioniert auch sehr gut. Allerdings bei dem Versuch eine Tabelle innerhalb der Datenbank zu erstellen bringt mir Delphi schon beim compilieren folgenden Syntaxfehler:

Inkompatible Typen '_ColumnDisp und Column'

Die entsprechende Zeile ist von mir nochmal im unten stehenden Code markiert.

Hat jemand schon mal so was gemacht und kann mir da vielleicht weiterhelfen????

Delphi-Quellcode:
implementation

{$R *.dfm}

resourcestring
  cConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';

var
  aCatalog : _Catalog;
  aTable : _Table;
  aColumn : _Column;
  aIndex : _Index;
  sDBPath : String;
  sDS : String;
  vColName : OLEVariant;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
  sDBPath:=Edit1.Text;
  if FileExists(sDBPath) then
  begin
    DeleteFile(sDBPath);
    Memo1.Lines.Add(Format('Datenbankdatei %s gelöscht',[sDBPath]));
  end;
  aCatalog:=CoCatalog.Create;
  sDS:=aCatalog.Create(Format('%s%s',[cConnectionString, sDBPath]));
  Memo1.Lines.Add(sDS);
  Memo1.Lines.Add(Format('Datenbank %s wurde erstellt...',[sDBPath]));

  aTable:=CoTable.Create;
  aTable.ParentCatalog:=aCatalog;
  aTable.Name:='Kunden';
  Memo1.Lines.Add(Format('Tablle %s wurde erstellt...',[aTable.Name]));

  vColName:='KdnName';
  aTable.Columns.Append(vColName,adVarWChar,30);
  aColumn:=aTable.Columns.Item[vColName] as _ColumnDisp; <-- HIER DER FEHLER !!!!!!!!
  aColumn.Properties['Description'].Value:='Name des Kunden';
  Memo1.Lines.Add('Spalte 1 hinzugefügt...');
end;

end.
Ich wäre euch dankbar wenn Ihr mich auf den richtigen Weg bringen könntet.

Ach ja, da ich was lernen will kommen Fremdkomponenten leider nicht in Frage. Ich möchte es gerne selber programmieren.
Grüße Legolas

Wissen ist Macht.
Wir wissen nichts, macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Probleme mit ADOX und D7 Personal

  Alt 11. Aug 2004, 13:38
Hallo,

so müsste es funktionieren:

Delphi-Quellcode:
  ...
  vColName:='KdnName';
  // ab hier geht's los...
  aColumn:=CoColumn.Create;
  with aColumn do
  begin
    ParentCatalog:=aCatalog;
    Name:=vColName;
    Type:=adVarWChar;
    DefinedSize:=30;
    // folgende Anweisungen sind nicht unbedingt nötig...
    Properties['Discription'].Value:='Name des Kunden';
    Properties['Default'].Value:='';
    Properties['Jet OLEDB:Allow Zero Length'].Value:=True; // <-- erlaubt Null-Werte
  end; // with
  aTable.Columns.Append(aColumn, 0, 0);
  ...
  // und zum Schluß Tabelle hinzufügen
  aCatalog.Tables.Append(aTable);
Kurz zur Erklärung:
ADOX erwartet, dass für jede Spalte der Tabelle eine eigene Column-Objektinstanz erzeugt, konfiguriert und der Columns-Kollektion des Table-Objekts hinzugefügt wird. Erst wenn das erledigt ist, wird das konfigurierte Table-Objekt über die Methode Append zu der Tables-Kollektion des Catalog-Objekt hinzugefügt.
  Mit Zitat antworten Zitat
Benutzerbild von Legolas
Legolas

Registriert seit: 28. Sep 2003
Ort: Frankfurt am Main
72 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Probleme mit ADOX und D7 Personal

  Alt 11. Aug 2004, 14:05
Hi Gollum,

(dein Name passt ja gut zu meinem, gelle? )

mit zwei kleinen Änderungen hat es funktioniert.

Ich bedanke mich bei dir. Hast du ne Ahnung wo ich ein paar gute Tuts in diese richtung im Internet finde (ich habe bisher nichts gefunden.
Grüße Legolas

Wissen ist Macht.
Wir wissen nichts, macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Probleme mit ADOX und D7 Personal

  Alt 11. Aug 2004, 14:41
Hallo Legolas,

(auch H.d.R.-Fan ). Leider kann ich Dir mit einem Tutorial nicht dienen. Ich habe zwar schon längere Zeit vor eines zum Thema zu schreiben, komme aber irgendwie nicht dazu.

Was ich Dir empfehlen kann ist das Buch
"ADO und Delphi" von Andreas Kosch
ISBN: 3-935042-10-8

Evtl. hilft es auch, wenn Du im Entwickler-Forum etwas stöberst.
  Mit Zitat antworten Zitat
Benutzerbild von Legolas
Legolas

Registriert seit: 28. Sep 2003
Ort: Frankfurt am Main
72 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Probleme mit ADOX und D7 Personal

  Alt 11. Aug 2004, 14:55
Hi Gollum,

das ist sicherlich eine gute Idee, allerdings war ich da schon und den Code den ich hier gepostet habe ist aus der Feder von Adreas Kosch (und seinem Buch ADO und Delphi).
deshalb wunderte es mich ja auch das das Beispiel bei mir nicht funktioniert und die besagte Fehlermeldung auftaucht.

Dein Code hat ja letztendlich funktioniert.

Na ja, ich werd halt mal in Netz weiter stöbern um die ganze Sache besser zu verstehen. Solltest du mal dein Tutorial fertig haben: HER DAMIT, ABER SOFORT

In diesem Sinne....
Grüße Legolas

Wissen ist Macht.
Wir wissen nichts, macht nichts.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz