AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Acces DB öffnen --> Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Acces DB öffnen --> Fehler

Ein Thema von Christian18 · begonnen am 7. Jan 2006 · letzter Beitrag vom 10. Jan 2006
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Acces DB öffnen --> Fehler

  Alt 7. Jan 2006, 17:04
Datenbank: Access • Version: 2000 • Zugriff über: ADO
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:
Create Table Auto
(
  Idx Counter,
  Name Char(30),
  Vorane Char(30),

  Constraint pk Primary Key (Idx)
)
Ich öffne die Datenbank mit ADOTable1.Active:=True;

Vieleicht könnt ihr mir weiterhelfen.

Mit freundlichen Grüßen

Christian18
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Acces DB öffnen --> Fehler

  Alt 7. Jan 2006, 17:12
Bist du da nicht schon einmal drauf reingefallen? Ändere die Definition deiner Tabelle wie folgt:

SQL-Code:
Create Table Auto
(
  Idx Counter,
  Name Char(30) null,
  Vorane Char(30) null,

  Constraint pk_Auto Primary Key (Idx)
)
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...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Acces DB öffnen --> Fehler

  Alt 7. Jan 2006, 18:33
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 Edit.Text := Tabelle.FieldValues['Name']; 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).

Grüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Acces DB öffnen --> Fehler

  Alt 7. Jan 2006, 21:28
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;
...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#5

Re: Acces DB öffnen --> Fehler

  Alt 10. Jan 2006, 13:41
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:
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)
)
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.

MFG Christian18

PS: Bitte nicht vergessen die ODBC Schnittstelle einzurichten. Name der Verbindung ist test.
Angehängte Dateien
Dateityp: zip projekt_198.zip (318,3 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Acces DB öffnen --> Fehler

  Alt 10. Jan 2006, 14:57
Zitat von Christian18:
Wichtig ist vieleicht für euch noch das ich über die ODBC Schnittstelle auf die Datenbank zugreife.
Warum das denn ??
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;
Andreas
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#7

Re: Acces DB öffnen --> Fehler

  Alt 10. Jan 2006, 15:05
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Acces DB öffnen --> Fehler

  Alt 10. Jan 2006, 15:49
Zitat von Christian18:
wichtiger für ich ist jetzt aber erstmal die fehlermeldung wegzubekommen, wenn ich das programm compiliere.
Umso wichtiger ist es, die Datenbank "richtig" zu öffnen.
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: http://msdn.microsoft.com/data/mdac/...s/default.aspx
Andreas
  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 02:19 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