![]() |
Datenbank: Access • Version: 97 +2000 • Zugriff über: Ado-Connection->AddoTable-> DataSource
Unterschied Access97--> Access2000
Hallo Forumsmitglieder,
vorab wuensche ich Allen ein angenehmes neues Jahr 2010. ich beschäftige mich aus Hobby mit dem Thema Delphi (2009) und nun auch mit Datenbank, speziell Access. Ich greife auf eine Mdb-Datenbank mit 9 Tabellen über Ado-Komp. zu. (Ado-Connection->AddoTable-> DataSource).Die AdoTable-Comp. habe ich mit einer Tabelle mit folgenden Feldern verbunden: Feld1: Text, Feld2: Text; Feld3: LongInt als Autowert (PrimaerKey); Feld4: Ja/Nein, Feld5: Ja/Nein, Feld6: Zahl(longInt). Ich habe die Datenbank im ori. im Format 97 vorliegen und anschliessend ueber Access in das Format 2000 konvertiert. Ich habe der Addotable-Comp. die Felder der Tabelle ueber die "Fields-Eigenschaft" zugewiesen. Ich möchte auf beide,97 +2000 Access-Formate, zugreifen. Für die ersten Tests weise ich den Connection-String direct der Ado-Connection-Comp zu. Zur Datensteuerung verwende ich eine eine DB-Grid und ein DBNavigator. Der erste Test erfolgte auf die Access2000-Format-Datenbank. Ich lege ueber das DBNavigator einen neuen Datensatz an und trage im Feld2 einen String ein. Anschliessend ueber Post wird der Datensatz in die Tabelle einegefuegt. Alles OK, keine Fehler, wichtig, der Autowert in Feld3 wird inkrementiert. Anschliesssend der gleiche Test mit der Acceess 97 Version. Verbindung OK, alle vorhandenen Daten werden im Grid dargestellt. Ich fuege einen neuen Datensatz ein, OK, leeres Record wird dargestellt. Ich fuege einen String im Feld2 ein, OK. Ich schliesse den Befehl mit "Post" ueber DBNavigator ab, OK, aber das Feld3 (Autowert) wird nicht inkrementiert, ist leer. Ueber den Nav-Button "Actualisieren" versuche ich die Tabelle zu actualisieren, es wird folgende Debugger-Exeption ausgeloest. "Der Schluesselwert fuer die Zeile wurde in der Datenquelle geaendert oder geloescht. Die lokale Zeile ist nun geloescht." Ist mir schon klar, nur warum wird der Autowert nicht inkrementiert? //----> Connection-String Access97 (Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;User ID=Admin;Data Source=C:\Temp\test\Database.mdb;Mode=Share Deny None;Extended Properties=";COUNTRY=0;CP=1252;LANGID=0x0409";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Global Partial Bulk Ops=2 Connection-String Access2000 Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Temp\test\Database_2.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False //<--- Vielen dank fuer Eure Rueckmeldung. Viele Gruesse, Bernd |
Re: Unterschied Access97--> Access2000
Wieso noch überhaupt Access'97. Die Anzahl der PC's die nur Access 97 und nicht Access-2000/XP/2003/2007-Format können dürfte im minimalen Promille-Bereich liegen. Wieso also sich noch selbst Stress mit sowas machen und für solche Uralt-DB-Formate versuchen Implementierungsunterschiede heraus zu finden. Vermutlich ist das Access-97-DB-Format nicht mit den aktuelle OLE-DB-Versionen und JET-Versionen kompatible (bzw. MS hat hier eine bugs in der Emuliation der alten Version).
|
Re: Unterschied Access97--> Access2000
//Wieso noch überhaupt Access'97//-->
Es gibt in der Industrie immer noch Systeme, die auf Access97 Datenbank, als lokales Speichermedium setzen/nutzen. Warum, keine Ahnung? (Kosten, Lizenzen??) Es geht mir nicht darum eine neue Datenbank/System zu erstellen. Gegeben ist, dass ich diese Konstellation habe und ich gerne das Problem loesen moechte. Ich weiss nicht so recht, wo ich da nun ansetzen soll. Ein Wink in die richtige Richtung, da fuer waehre ich sehr dankbar. Viele Gruesse, Bernd |
Re: Unterschied Access97--> Access2000
Hallo,
vielleicht hilft dir das ![]() Lösung: Weg von Access97 (steht im Link) Man könnte auch sagen, Bug, aber sowas gibt es bei MS nicht ;) Update ![]() Viell. hilft ja die Umstellung der CursorLocation auf clUseServer (wie das geht, sagt die Google). Heiko |
Re: Unterschied Access97--> Access2000
Zitat:
|
Re: Unterschied Access97--> Access2000
Hallo,
vielen Dank fuer den Link auf die Microsoftseite. Es wird dort ja der Bug, bzw. Unterschied zur 2000 Ver. beschrieben. Ich habe in meiner Testapplication den CurserTyp auf "clUserServer" gestellt, anschliessend war das Problem mit dem AutoInc-Feld behoben. Vielen Dank fuer Eure Untestuetzung, Bernd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz