AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mit Zeos auf MS-Access zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Zeos auf MS-Access zugreifen

Ein Thema von hsbc · begonnen am 6. Jun 2005 · letzter Beitrag vom 8. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#11

Re: Mit Zeos auf MS-Access zugreifen

  Alt 7. Jun 2005, 14:12
Hi Stevie,

ja, das wird es auch sein.

Ich habe jetzt probeweise eine Demo-DB mit nur einer Tabelle mit dem gleichen Satzaufbau neu angelegt und siehe da - hier funktioniert es. Ich möchte mich daher nochmals für deine Hilfe bedanken. Wie könnte ich erfahren, wenn sich diesbezüglich eine Änderung ergibt?

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

Re: Mit Zeos auf MS-Access zugreifen

  Alt 7. Jun 2005, 15:06
Hallo Herbert,

der Fehler, den ich oben erwähnte, ist behoben, das heißt, wenn du ein TStringField deklariert hast und über ADO auf eine Datenmenge zugreifst, dürfte es keinen Fehler mehr geben.

Zu beachten ist hierbei: ADO deklariert standardmäßig Text-Felder als WideString, das heißt, wenn du dir die Felder über das ADO-Protokoll erzeugen lässt, sind sie als TWideStringField deklariert, andere Protokolle erstellen an dieser Stelle Objekte vom Typ TStringField. Trotzdem kann über das ADO-Protokoll mit TStringField gearbeitet werden, was vorher den Fehler verursachte, da fälschlicherweise in der DB.pas WideString und String als inkompatibel erkannt werden. Dieser Fehler wird imho auch in der ADODB.pas durch Überschreiben der verantwortlichen Methode behoben; ab sofort auf jeden Fall auch in der ZAbstractRODataSet.pas.

Im Kontextmenü des Verzeichnisses "zeosdbo_rework" wählst du den Punkt "CVS Lokal aktualisieren" aus und erhältst somit die neueste Version aus dem cvs.

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#13

Re: Mit Zeos auf MS-Access zugreifen

  Alt 7. Jun 2005, 15:44
Hallo Stevie,

danke nochmals für die Info, jetzt hätte ich noch eine Frage in diesem Zusammenhang:

Hast du einen Quellcode für das Erstellen einer neuen MS-ACCESS-Datenbank unter ZEOS? Ich habe hier schon einiges versucht, aber

CREATE DATABASE ... so wie bei mySQL oder auch MSSQL funktioniert hier natürlich nicht. An Dokumentationen bin ich leider noch nicht so recht fündig geworden. Also:

Wie funktioniert CREATE DATABASE für eine MS-Access-Datenbank mit ZEOS ?

mfg
Herbert
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#14

Re: Mit Zeos auf MS-Access zugreifen

  Alt 8. Jun 2005, 06:54
Nach eingehenden Tests habe ich folgendes festgestellt:

Wenn im Feldeditor der ZTable die Felder deklariert werden und die aktuelle Datenbank zu diesem Zeitpunkt eine MS-Access ist, dann funktioniert alles.

Ist aber zum Zeitpunkt der Felddeklaration eine andere Datenbank in Verwendung (Firebird, mySQL, etc), dann kann man später nicht auf eine MS-Access-DB zugreifen.

@ Stevie: Deine Feststellung:

Zitat:
Falls du in deinem TZTable-Objekt bereits die Felder deklariert hast - ich denke, dies ist der Fall, weil du das Programm ja auch mit anderen Datenbanken benutzt - dann liegt bei dir der folgende Fehler vor, den ich gerade zu beheben im Begriff bin.
trifft dann nach wie vor noch zu.

Vielleicht kann sich jemand dieses Problem doch noch mal genauer unter die Lupe nehmen, zumal das ganze ja bei Verwendung von ZQuery anstatt von ZTable einwandfrei funktioniert.

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Mit Zeos auf MS-Access zugreifen

  Alt 8. Jun 2005, 07:22
1, Generell sollte man bei Verwendung von mehreren Datenbanken auf Felddefinition in der IDE verzichten, da auch Komponenten wie Zeos nicht 100% die Unterschiede bezüglich SQL-Auslegung verstecken können. Dies tritt vor allem dann zutage wenn nicht nur die Standard-Datentypen wie Integer oder String verwendet werden. Selbst Blob und Memo-Felder verhalten sich schon unterschiedlich.
Dein Problem wird sein das unter Firebird, MySQL ein TStringField angelegt wird und bei Access eine TWideStringField. Und dies ist jeweils korrekt da du bei Firebird und MySQL varchars und bei Access nvarchars verwendest.

2, Noch besser ist es mittels Bridge-Pattern die DB-Unterschiede in einer Unit/Klasse zu kapseln. Als gemeinsammkeit sollte dann maximal TDataset vorrausgesetzt werden. Noch besser wäre es ohne TDataset auszukommen und ähnlich wie bei ADO.NET eine disconnected Dataset zu definieren (Ist zwar aufwand, aber man ist dann komplett unabhängig von TDataset-Kompatiblen Komponenten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#16

Re: Mit Zeos auf MS-Access zugreifen

  Alt 8. Jun 2005, 07:23
Hallo Stevie,

ich muss mein letztes Statement korrigieren:

Habe mir soeben nochmals mit cvs die neuesten Daten installiert - und jetzt funktioniert es.

Danke nochmals für deine Hilfe.

mfg
Herbert
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#17

Re: Mit Zeos auf MS-Access zugreifen

  Alt 8. Jun 2005, 07:32
Hallo Bernhard,

deine Vermutung trifft zu 100% zu, aber Stevie dürfte es nun wirklich gelungen sein, dieses Problem zu lösen. Jedenfalls mit den neuesten Zeos-Daten funktioniert es tatsächlich.

Mittels Bridge-Pattern die DB-Unterschiede in einer Unit/Klasse kapseln, sagt mir leider nichts. Was ist übrigens eine disconnected Dataset? Wo kann man darüber nachlesen?

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: Mit Zeos auf MS-Access zugreifen

  Alt 8. Jun 2005, 07:37
Zitat von hsbc:
deine Vermutung trifft zu 100% zu, aber Stevie dürfte es nun wirklich gelungen sein, dieses Problem zu lösen. Jedenfalls mit den neuesten Zeos-Daten funktioniert es tatsächlich.
Für das String <-> WideString-Problem dürft das auch zu lösen sein, da ja Delphi automatische konvertierungen anbietet und diese kompatible sind.

Zitat von hsbc:
Mittels Bridge-Pattern die DB-Unterschiede in einer Unit/Klasse kapseln, sagt mir leider nichts. Was ist übrigens eine disconnected Dataset? Wo kann man darüber nachlesen?
Brücke oder über jeden guten Buch über Entwurfsmuster
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:55 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