![]() |
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Acces DB öffnen --> Fehler
Hallo,
ich habe mal wieder ein kleines Problem mir Delphi und Access. Wenn ich meine ADOTable auf meinem DatenModul Öffnen will, dann kommt immer eine Fehlermeldung. [Fehler] Im Projekt Project1.exe ist eine Exception der Klasse EVariantTypeCastError aufgetreten. Meldung: 'Variante des Typs (Null) konnte nicht in Typ (String) konvertiert werden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. [/Fehler] Wichtig ist vieleicht für euch noch das ich über die ODBC Schnittstelle auf die Datenbank zugreife. Hier meine Datenbank:
SQL-Code:
Ich öffne die Datenbank mit ADOTable1.Active:=True;
Create Table Auto
( Idx Counter, Name Char(30), Vorane Char(30), Constraint pk Primary Key (Idx) ) Vieleicht könnt ihr mir weiterhelfen. Mit freundlichen Grüßen Christian18 |
Re: Acces DB öffnen --> Fehler
Bist du da nicht schon einmal drauf reingefallen? Ändere die Definition deiner Tabelle wie folgt:
SQL-Code:
Auf diese Art und Weise läßt du NULL-Werte in den Spalten Name und Vorname (?) zu. Achte bitte auch darauf, dass "NAME" eventuell als Schlüsselwort interpretiert werden könnte...
Create Table Auto
( Idx Counter, Name Char(30) null, Vorane Char(30) null, Constraint pk_Auto Primary Key (Idx) ) Grüße Mikhal |
Re: Acces DB öffnen --> Fehler
Der angegebene Fehler zum angegebenen Zeitpunkt (beim Öffnen einer Tabelle) scheint mir nicht unbedingt auf die Null-Klausel im zu Grunde liegenden DDL-Statement hinzuweisen. Ich erwarte eigentlich, dass in einem der event handler, die beim Öffnen der Tabelle getriggert werden, eine Konvertierung der Form
Delphi-Quellcode:
statt findet. Und ich vermute, dass die Null-Klauseln, wie in jenem anderen thread empfohlen wurde, bereits über den Entwurfsmodus von Access hinzugefügt wurden und nur das hier gezeigte DDL-Statement noch das alte ist (Copy & Paste).
Edit.Text := Tabelle.FieldValues['Name'];
Grüße vom marabu |
Re: Acces DB öffnen --> Fehler
Ich tippe auch mal darauf, das sich in einer der Eventhandler die vom marabu beschriebene laisser-faire Programmierung eingeschlichen hat.
Mit Variants zu arbeiten, ist, insbesondere bei Metadaten, ungemein praktisch. Aber man muss, wenn man die Variant-Welt verlässt, unbedingt Konvertierungsroutinen verwenden. Ich habe mir dafür eine ganze Reihe von Funktionen geschrieben, die Delphi nicht oder nur ungenügend implementiert hat:
Delphi-Quellcode:
Function VarToInt (aVariant : TVariant) : Integer;
Function VarToStr (aVariant : TVariant) : String; Function VarToBool (aVariant : TVariant) : Boolean; Function VarToDateTime (aVariant : TVariant) : DateTime; Function VarToDouble (aVariant : TVariant) : Double; ... |
Re: Acces DB öffnen --> Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich weiß das ich dieses Thema schon einmal angesprochen habe. Aber bei dem letzten mal hat es irgendwie dann doch nicht funktionert. Also der Fehler kommt immer wenn ich das Programm Compiliere, wenn ich das Compilierte Programm ausführe, dann funktionert es. ich mache in dem Proramm noch nichts weiter als eine Tabelle zu öffnen die ich vorher über Access befehle erzeuge. So erzeuge ich die Tabelle:
SQL-Code:
so mehr mache ich noch nicht. Ich schicke auch mal das Projekt mir, was ich bis jetzt habe. Dann könnt ihr euch mal den Fehler anschauen.
Create Table Kunden
( Idx Counter, Name Char(30) Null, Vorname Char(30) Null, Str Char(50) Null, PLZ Char(5) Null, Ort Char(50) Null, Constraint pk Primary Key (Idx) ) MFG Christian18 PS: Bitte nicht vergessen die ODBC Schnittstelle einzurichten. Name der Verbindung ist test. |
Re: Acces DB öffnen --> Fehler
Zitat:
Nimm doch den OLE-DB Provider für die Jet-Engine. Das beschleunigt den Datenzugriff. Folgender Code zeigt, wie der connectionstring "gebaut" wird:
Delphi-Quellcode:
const
// DB_PROVIDER = 'Microsoft.Jet.OLEDB.3.51'; // Access 97 DB_PROVIDER = 'Microsoft.Jet.OLEDB.4.0'; // Access 2000 function MDBGetConnectionString(const MDBFile: string): string; begin Result := Format('Provider=%s;Data Source=%s',[DB_PROVIDER,MDBFile]); end; |
Re: Acces DB öffnen --> Fehler
Hi shmia,
danke für den code ich werde das mal ausprobieren. wichtiger für ich ist jetzt aber erstmal die fehlermeldung wegzubekommen, wenn ich das programm compiliere. MFG Christian18 |
Re: Acces DB öffnen --> Fehler
Zitat:
Wenn du über ODBC-Treiber arbeitest, dann hast du eine weitere Schicht zwischen deiner Anwendung und der Datenbank. In dieser Schicht gehen bestimmte Funktionalitäten verloren (da sie in ODBC nie vorgesehen waren); Bugs in dieser Schicht können bei bestimmten Konstellationen zum Vorschein kommen. Wichtig ist ausserdem: * MDAC Version 2.7 SP 1 oder höher verwenden * Jet Engine Servicepack 8 download: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 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 by Thomas Breitkreuz