Ich habe hier ein Problem welches ich mir nicht erklären kann.
Local habe ich einen MS-SQL-Server MSSQL15 installiert und in die Tabelle SNK Daten importiert. Über SQL-Studio kann ich mir die Daten ansehen.
Ich habe verschiedene Verbindungen getestet, zum Schluss eine DSN mit dem Sample von Alaska.
Die Benutzer DSN verwendet ODBC Driver 17 for SQL Server (32Bit).
Betriebssystem Windows 11
Alaska Version 2.00.1334 vom 25.11.2020
Die Verbindung zum SQL-Server geht immer. Beim Lesen der Daten kommt die Fehlermeldung das es einen Fehler mit dem Feld ADRESSE gibt.
Feld Seriennr geht aber Feld Adresse nicht. Beides sind nvarchar halt mit unterschiedlicher Länge.
Um das besser zu verstehen habe ich die Daten über folgens Array ausgelesen: (siehe Code)
Der Feldname und der Wert stehen dann in dem Array. Das mache ich für jeden Datensatz in der Tabelle SNK auf dem SQL-Server.
Und hier passiert folgendes:
Das Feld Seriennr (nVarChar31) hat immer den richtigen Inhalt.
Das Feld Adresse <nVarChar15) ist immer NULL, obwohl in der Datenbank ein Eintrag ist.
Das Feld Artikel ist immer NULL
Das Feld Lieferdatum hat immer den richtigen Wert aus der Tabelle.
Wie so liest das Programm die Felder vom Typ Timestamp, nvarchr(13), datetime aber NICHT die Felder nVarchar(15).
Irgend jemand eine Idee dazu.
Grüße und ein gesundes neues Jahr
Bernd
Code: Alles auswählen
select ODBC_DATEI
USE SNK VIA "ODBCDBE" // like dbase
select ODBC_DATEI
dbgotop()
altd()
do while !eof()
feld_array := {}
FOR loc_i = 1 TO FCOUNT()
AADD(feld_array,{fieldname(loc_i),fieldget(loc_i)})
NEXT
// Auch mit dem Sample von Alaska geht es nicht.
Code: Alles auswählen
? "Please choose the DSN of the Nortwhind sample database"
cDsn := "Applustest"
CREATE CONNECTION INTO oSession DATASOURCE (cDsn) DIALOG
IF !oSession:isconnected()
Alert("Connection failed")
QUIT
ENDIF
SQL "SELECT * FROM SNK" VIA oSession
LIST ALL // Fehlermeldung mit Feld Adresse
CLOSE
CREATE TABLE [dbo].[SNK](
[id] [int] NOT NULL,
[timestamp] [timestamp] NOT NULL,
[SERIENNR] [nvarchar](31) NULL,
[CHARGE] [nvarchar](15) NULL,
[ADRESSE] [nvarchar](15) NULL,
[ARTIKEL] [nvarchar](22) NULL,
[LIEFERDATUM] [datetime] NULL,