Problem beim Anlegen einer DSN

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Problem beim Anlegen einer DSN

Beitrag von Pelagio »

Ich habe Probleme eine SQL Datenbank zu öffnen, genauer gesagt eine DSN zu erstellen.
Es kommt immer die Fehlermeldung: '1 ODBC: SQL Success = k'.
Allerdings hatte ich mit diesem Source schon eine Exe unter PB 5.30 erstellt und diese Exe funktioniert.
Ich wollte jetzt kleinere Änderungen vornehmen und bekomme unter PB 5.42 die oben genannte Fehlermeldung.
Ich dachte erst das Problem liege am Computer, da ich einen neuen gestellt bekommen habe (Umrüstung von XP auf Win7)
und in diesem Zusammenghang auch meine lokalen Adminrechte verloren habe.
Aber sollte das Problem wirklich daran liegen, so dürfte die Exe-Datei auch nicht funktionieren.
Ich gehe deshalb davon aus das PB5.42 das Problem verursacht.
Im Augenblick bin ich :bluescreen: >_< und brauche Eure Hilfe :praise:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Problem beim Anlegen einer DSN

Beitrag von ts-soft »

Nutzt Du vielleicht 64-Bit? Die meisten ODBC-Treiber liegen nur in einer 32-Bit Version vor und lassen sich demnach nur
mit der 32-Bit Version von PureBasic öffnen!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Problem beim Anlegen einer DSN

Beitrag von Pelagio »

Hallo ts-soft,

hätte ich vorab schon sagen sollen, habe ich nicht daran gedacht, Tschuldigung.
Ich benutze weiterhin 32-Bit.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Problem beim Anlegen einer DSN

Beitrag von Pelagio »

Ich habe hier und da etwas ausprobiert und dabei herausgefunden das die Fehlermeldung doch Umpfangreicher ist.
Sie Besagt: 'ODBC: SQL Success = Komponente wurde in der Registrierung nicht gefunden.'
Ich habe auch versucht ein weiteres Programm zu aktivieren das mit ODBC eine Exceltabelle ausliest.
Bei der alten Exe klappt es wenn ich aber eine neue Exe erstelle geht es nich mehr und es kommt der genannte Fehler.
Als Beispiel:

Code: Alles auswählen

#Treiber  = "Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)"
Enumeration
	#Database
	#ADD_DSN             ; Add Data source
	#CONFIG_DSN          ; Configure (edit) Data source
	#REMOVE_DSN          ; Remove Data source
	#ADD_SYS_DSN         ; Add a system DSN 
	#CONFIG_SYS_DSN      ; Configure a system DSN 
	#REMOVE_SYS_DSN      ; Remove a system DSN 
	#REMOVE_DEFAULT_DSN  ; Remove the default DSN
EndEnumeration

Define.c mNKS = 2
Define.s mCON, mDSN = "PBExcel_DSN"

Procedure.a DSN_Create(vFiles.s)
	Shared mDSN, mCON
	Protected pResult.a

	mDSN = ReplaceString(GetFilePart(vFiles),".","_")
	mDSN = Left(ReplaceString(mDSN," ","-"), 25)
	mCON = "Server=SomeServer; Description=Description For Purebasic Excel-ODBC;DSN=" + mDSN + ";DBQ=" + vFiles + ";UID=;PWD=;"
	If SQLConfigDataSource_(#Database, #ADD_DSN, #Treiber, mCON)
		pResult = #True
	EndIf
	ProcedureReturn pResult
EndProcedure 
Ansonsten bin ich noch keinen Schritt weiter :coderselixir:.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Problem beim Anlegen einer DSN

Beitrag von Kiffi »

ich benutze das hier (von srod?) ohne Probleme:

Code: Alles auswählen

#ODBC_ADD_DSN    = 1
#ODBC_CONFIG_DSN = 2
#ODBC_REMOVE_DSN = 3

Procedure.i AddConnection(driver$, connectString$) 
  Protected result, base, *mem.CHARACTER, *ptr.CHARACTER, len, i
  If driver$ And connectString$
    len = Len(connectString$)
    base = AllocateMemory((len + 2)<<(SizeOf(CHARACTER)-1))
    If base
      *mem = base
      *ptr = @connectString$
      ;Switch all ; for nulls.
      For i = 1 To len
        If *ptr\c <> ';'
          *mem\c = *ptr\c
        EndIf
        *mem + SizeOf(CHARACTER)
        *ptr + SizeOf(CHARACTER)
      Next
      result = SQLConfigDataSource_(0, #ODBC_ADD_DSN, driver$, base) 
      FreeMemory(base)
      If result 
        ProcedureReturn 1 
      EndIf 
    EndIf
  EndIf
EndProcedure 
Procedure.i RemoveConnection(Driver.s,DSN.s) 
  Protected Result
  Result=SQLConfigDataSource_(0,#ODBC_REMOVE_DSN,Driver,"DSN="+DSN) 
  If Result 
    ProcedureReturn 1 
  EndIf 
EndProcedure 
Grüße ... Peter
a²+b²=mc²
Antworten