[Gelöst] Access-Datenbank mit OBCD und PureBasic x64

Anfängerfragen zum Programmieren mit PureBasic.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

[Gelöst] Access-Datenbank mit OBCD und PureBasic x64

Beitrag von ThoPie »

Hallo zusammen,
bisher habe ich mein Projekt mit der 32-bit-Version von PureBasic und einer Access-Datenbank (mdb) verwendet. Die Datenbank wird per ODBC verwendet.
Nun möchte ich gern auf die 64-bit-Version von Purebasic wechseln. Die Datenbank habe ich in das accdb-Format (32/64-bit) konvertiert.
Beim Laden der Datenbank funktionieren die Befehle

Code: Alles auswählen

Debug UseODBCDatabase()
Debug OpenDatabase(#dbPersonal,"PersonalTest","","",#PB_Database_ODBC)
Debug IsDatabase(#dbPersonal)
Allerdings kommt beim ersten Verwenden der Datenbank ein Speicherzugriffsfehler

Code: Alles auswählen

DatabaseQuery(#dbPersonal,"SELECT Bezeichnung,Wert FROM tblEinstellungenSystem")
  While NextDatabaseRow(#dbPersonal)
    Select GetDatabaseString(#dbPersonal,0)
      Case "Anmeldeversuche"
        E\Anmeldeversuche=GetDatabaseLong(#dbPersonal,1)
      ...
    EndSelect
  Wend
  FinishDatabaseQuery(#dbPersonal)
Hab ich da was übersehen oder geht das gar nicht so einfach mit dem Umstieg wie ich dachte?
Vielen Dank für eure Hilfe.
Zuletzt geändert von ThoPie am 02.01.2019 18:45, insgesamt 1-mal geändert.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Access-Datenbank mit OBCD und PureBasic x64

Beitrag von mk-soft »

Vermute den Fehler wo anders.

Bei x86 hat man viele Variablen mit name.l (Long) angelegt.
Beim umsteigen auf x64 muss man aber die Variablen die mit Handles oder ID´s zusammenhängen auf name.i (integer) ändern,
da Handles oder ID´s bei x64 8Byte gross sind.

Am best alles mit suchen/ersetzen von ".l" nach ".i" durchführen...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Re: Access-Datenbank mit OBCD und PureBasic x64

Beitrag von ThoPie »

Vielen Dank für die Idee.
Dies Umstellung von .l auf .i hatte ich vorher schon gemacht. Beziehungsweise hatte ich .l gar nicht verwendet.

Der Speicherfehler kommt übrigens in der Zeile:

Code: Alles auswählen

Case "Anmeldeversuche"
Sowohl "Bezeichnung", als auch "Wert" sind in der Access-Tabelle Strings mit festen Längen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Access-Datenbank mit OBCD und PureBasic x64

Beitrag von mk-soft »

Vielleicht mag es nicht das Feld Wert als Long zu lesen

Code: Alles auswählen

DatabaseQuery(#dbPersonal,"SELECT Bezeichnung,Wert FROM tblEinstellungenSystem")
  While NextDatabaseRow(#dbPersonal)
    Select GetDatabaseString(#dbPersonal,0)
      Case "Anmeldeversuche"
        E\Anmeldeversuche=Val(GetDatabaseString(#dbPersonal,1))
      ...
    EndSelect
  Wend
  FinishDatabaseQuery(#dbPersonal)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Re: Access-Datenbank mit OBCD und PureBasic x64

Beitrag von ThoPie »

Hallo,

leider ist dies nicht das Problem.
Kann es sein das Strings irgendwie anders behandelt werden?
Kann es evtl. sein, dass ich die 64bit DataBase-Engine von Access installieren muss? Ich arbeite nämlich mit der 32bit-Version von Office?
Bild
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

[Gelöst] Access-Datenbank mit OBCD und PureBasic x64

Beitrag von ThoPie »

Ja, das ist es.
Habe parallel zur 32-bit-Version von Office, die 64-bit-Access-Runtime installiert.
Bild
Antworten