Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skapa ODBC koppling med kod /vb6?

Postades av 2007-09-11 09:19:23 - Per Johansson, i forum visual basic - allmänt, Tråden har 16 Kommentarer och lästs av 853 personer

'Kan någon hjälpa mig med en automatisk koppling till access db via DSN.
'Får inte till DWORD bla..

Private Const KEY_QUERY_VALUE = &H1
Private Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_DWORD = 4
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

Public Function CreateLagerkollDSN(szWantedDSN As String, dbPathvalue As String, sDBPassword As String) As Boolean

Dim sSystemfolder As String
Dim hKey As Long 'Av per
Dim szKeyPath As String
Dim szKeyName As String
Dim szKeyValue As String
Dim sSourceType As String
Dim lKeyValue As Long
Dim lRes As Long
Dim lSize As Long
Dim szEmpty As String
szEmpty = Chr(0)

'Get Systemfolder
Dim nRet As Integer, Temp As String * 260
nRet = GetWindowsDirectory(Temp, 260)
sSystemfolder = Left(Temp, nRet)
'********************

lSize = 4
lRes = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & szWantedDSN, hKey)

If lRes <> ERROR_SUCCESS Then
Exit Function
End If

'*****************************************************************************
'DB Path
szKeyValue = dbPathvalue '"C:\Program\Mapp\Databas.mdb"
lRes = RegSetValueExString(hKey, "DBQ", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))
'Beskrivning
szKeyValue = "Min db koppling" '"C:\Program\SPCS\SPCS Administration\Ovnbol"
lRes = RegSetValueExString(hKey, "Description", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))
'Driver
szKeyValue = "C:\WINDOWS\system32\odbcjt32.dll"
lRes = RegSetValueExString(hKey, "Driver", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))
'Driverid
szKeyValue = "19"
' lRes = RegSetValueExString(hKey, "DriverId", 0&, REG_DWORD, _
' szKeyValue, Len(szKeyValue))
'FIL
szKeyValue = "MS Access;"
'szKeyValue = "C:\WINDOWS\System32\vfpodbc.dll"
lRes = RegSetValueExString(hKey, "FIL", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))
'PWD
szKeyValue = sDBPassword ' "********"
lRes = RegSetValueExString(hKey, "PWD", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))
'SafeTransactions
' szKeyValue = "0"
' lRes = RegSetValueExLong(hKey, "SafeTransactions", 0&, REG_DWORD, CLng(0), CLng(0))
'UID
szKeyValue = ""
lRes = RegSetValueExString(hKey, "UID", 0&, REG_SZ, _
szKeyValue, Len(szKeyValue))

'*****************************************************************************
lRes = RegCreateKey(HKEY_LOCAL_MACHINE, szKeyPath, hKey)

If lRes <> ERROR_SUCCESS Then
Exit Function
End If

lRes = RegCloseKey(hKey)
lRes = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", hKey)

If lRes <> ERROR_SUCCESS Then
Exit Function
End If

szKeyValue = "Microsoft Access Driver (*.mdb)" 'Microsoft Access Driver (*.mdb)
lRes = RegSetValueExString(hKey, szWantedDSN, 0&, REG_SZ, szKeyValue, Len(szKeyValue))
lRes = RegCloseKey(hKey)
CreateLagerkollDSN = True

Exit Function
functionError:
MsgBox "Fel vid skapandet av DSN conn" & vbCrLf & Err.Description, , Err.Number

End Function


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-03 16:02:24 - Per Johansson

Finns det ingen som vet hur man skapar en ODBC koppling via kod i vb6?


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-03 19:32:51 - Carsten Johansson

http://www.pellesoft.se/area/articles/article.aspx?artid=611

http://www.pellesoft.se/area/articles/article.aspx?artid=935


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-03 20:03:12 - Per Johansson

Inte riktigt vad jag tänkte, utan jag vill skapa en ODBC/DSN se koden ovan den skapar nästan en fungerande det är d-word som inte går.


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-03 21:35:10 - Sven Åke Persson

Testa detta med constanten. Som det står nu är DWORD typ VB Integer dvs Word
<code>
Private Const REG_DWORD As Long = 4
'eller kanske detta också går
Private Const REG_DWORD = 4&
</code>


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 09:39:11 - Per Johansson

Nej tyvärr, får Ogitigt DWORD-Värde
Skall vara hexadecimalt värde?


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 10:00:33 - Sven Åke Persson

Oki på det då får du testa att skriva så här.
<code>
Private Const REG_DWORD = &H80000004
'möjligtvis går detta också
Private Const REG_DWORD = &H4
</code>

Tänkte på de. Är det kanske 4 som är ogiltigt !?


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 11:09:48 - Per Johansson

Det ändrade registernyckel typ från DWORD till 0x80000004
Inte rätt?

Jag skapar så här & jag tror felet ligger här:

szKeyValue = "19"
lRes = RegSetValueExString(hKey, "DriverId", 0&, REG_DWORD, _
szKeyValue, Len(szKeyValue))
Och
szKeyValue = "0"
lRes = RegSetValueExString(hKey, "SafeTransactions", 0&, REG_DWORD, _
szKeyValue, Len(szKeyValue))



Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 11:53:50 - Sven Åke Persson

mmm.... det är ju 8:an som blir fel skulle vara så här C standard
DWORD 0x00000004(4)

Vad blir det om du kör alternativ 2
Private Const REG_DWORD = &H4

Testa också
Private Const REG_DWORD = &H00000004 (7 nollor 4)


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 12:14:37 - Sven Åke Persson

Den här raden är ju också fel. skall inte stå Private Const HKEY_LOCAL_MACHINE = &H80000002
8:an är fel det är ett VB trix som jag aldrig begripit

borde vara
Private Const HKEY_LOCAL_MACHINE = &H2
Private Const REG_DWORD = &H4

Eller det mest logiska eftersom Functionen vill ha Long som parameter

Private Const HKEY_LOCAL_MACHINE = 2&
Private Const REG_DWORD = 4&


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 12:27:42 - Per Johansson

Nej tyvärr, samma fel!
Ogiltigt DWORD-Värde


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 13:07:39 - Sven Åke Persson

Det var ju själva fae.... också.

Kan du tvångsmata genom att Editera i RegisterEditorn.

Hur står det nu ?


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 13:24:41 - Sven Åke Persson

Men Ok det kan ju vara värdena 2 resp 4 han inte gillar
Var kommer dom ifrån ?

Testa att ändra dom till något annat = 0& osv.

Edit:
Vi får göra ett "dummy" prog som testar att få
<b>Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long</b> att fungera
<code>
'Driverid
szKeyValue = "19"
lRes = RegSetValueExString(hKey, "DriverId", 0&, REG_DWORD, _
szKeyValue, Len(szKeyValue))
</code>


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 13:54:01 - Sven Åke Persson

Testa att använda denna Function istället.Jag skall testa att bygga om som du vill ha det.

<code>
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Set the key's value
RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4
'close the key
RegCloseKey Ret
End Sub


'Börja att ändra detta till
szKeyValue = "19"
lRes = RegSetValueEx(hKey, "DriverId", 0&, REG_DWORD, _
szKeyValue, Len(szKeyValue))
Och
szKeyValue = "0"
lRes = RegSetValueEx(hKey, "SafeTransactions", 0&, REG_DWORD, _
szKeyValue, Len(szKeyValue))
</code>


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 15:04:10 - Per Johansson

Hur deklareras REG_BINARY? As ?


Svara

Sv:Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-04 18:05:37 - Sven Åke Persson

Djä... soppa det här men du får inte ge dig
<code>
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_BINARY = 3 ' Free form binary
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
</code>


Svara

Sv: Skapa ODBC koppling med kod /vb6?

Postades av 2007-10-08 20:24:22 - Per Johansson

Tack, jag löste det genom att hitta ett annat tipps som använde ODBCCP32.DLL skall lägga ut det på artiklar när jag är klar. Tusen tack Sven Åke.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
361
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies