Avatar billede thewizard Nybegynder
13. juli 2006 - 04:26 Der er 18 kommentarer

Problem ang. msSQL og Visual Basic

Jeg har tidligere forsøgt, med gode resultater, at forbinde et Visual Basic-program til en msSQL-server, og derefter trække data ud af den - og lagre.

Men da jeg nu, et par måneder efter, hiver koden frem igen, ser den ikk ud til at virke:

Option Explicit

Private objConn As Object
Private objRs  As Object


Public Function MsSQL(ByVal strHost As String, _
                      ByVal strBase As String, _
                      ByVal strUser As String, _
                      ByVal strPass As String, _
                      ByVal strBruger As String, _
                      ByVal strSQL As String, _
                      ByVal strAdgang As String) As Boolean
                     

Dim strConn As String
 
  strUser = "sa"
  strPass = "e20zulu"
  strHost = "83.90.157.221"
  strBase = "hjemmeside"

  strConn = "Provider=SQLOLEDB.1" & _
            ";user id=" & strUser & _
            ";pwd=" & strPass & _
            ";Initial Catalog=" & strBase & _
            ";server=" & strHost & ";"


    With objConn
        .CommandTimeout = 30
        .ConnectionTimeout = 15
        .ConnectionString = strConn
        .Open
        Set objRs = .Execute(strSQL)



    End With
End Function

Private Sub cmdInterest_Click()

Set objConn = CreateObject("ADODB.Connection")
  Set objRs = CreateObject("ADODB.RecordSet")



  'Husk at ænder HOST, DATABASE, USER og PASS til din SQL-Server _
  Bruger og Adgang er de navne du tjekker..
  Me.Caption = MsSQL("83.90.157.221", _
                    "hjemmeside", _
                    "sa", _
                    "e20zulu", _
                    "", _
                    "SELECT * FROM [brugere] where ID = 1", _
                    "")


      Label1.Caption = objRs("brugernavn")



End Sub


------------------------

Men nu melder min SQL-server fejl? Programmet fryser et par sekunder, og derefter giver mig svaret:

Run-time error '-2147467259 (80004005)':
[DNNETLIB][ConnectionOpen (PreLoginHandshake()).]General network error. Check your network documentation.

Jeg giver 200 point til den som løser det for mig. Sådan noget skal bare virke :/.
Avatar billede thewizard Nybegynder
13. juli 2006 - 08:55 #1
Kan det ha' noget at gøre med firewall? Har slået den fra, men har på fornemmelsen at den SKOD "service pack 2"-firewall stadig er aktiv. Grrr...

Jeg har slået den fra, men er der en måde man kan sikre sig at den er HELT død? Slår jeg firewallen til, melder den samme fejl.
Avatar billede froenie Nybegynder
13. juli 2006 - 13:21 #2
Det har som regel noget at gøre med at det tager for lang tid at resolve navnet på serveren. Nu bruger du jo IP adressen, så det burde jo ikke være det.
Du kan prøve at tilføje adressen i hostfilen på client pc'en, hvis du ikke allerede har gjort det....

Hvilken version af MDAC er der på maskinen, ved du det ?
Avatar billede froenie Nybegynder
13. juli 2006 - 13:26 #3
Men du har ret det kan også være firewall. Jeg har hørt at nogle firewalls delayer PreLoginHandshake() requesten, så den timer ud. Hvis du kan ændre hvordan den håndtere sql trafikken, er det en mulighed.

Eventuelt prøve en anden firewall....
Avatar billede thewizard Nybegynder
13. juli 2006 - 13:27 #4
Problemet ligger i at det ikke er muligt at prøve en anden firewall (tak microsoft). msSQL KRÆVER at man har SP2 (service pack 2) installeret, og med den følger en firewall.

Jeg aner ikke hvad MDAC er.
Avatar billede froenie Nybegynder
13. juli 2006 - 13:31 #5
Microsofts data access drivers

Er sql serveren opdateret med de seneste service packs ?
Avatar billede froenie Nybegynder
13. juli 2006 - 13:39 #6
Du kan prøve at pinge sql-serveren både via navn og IP, så kan du se om den når hele vejen igennem.
Hvis ikke så må det være router/firewall, men det startede du jo selv ud med at vide :)
Avatar billede thewizard Nybegynder
13. juli 2006 - 17:36 #7
Jeg bruger kun IP, og den har ikke problemer med at pinge. Der er ikke tilsluttet nogen ekstra router. Der er installeret SP2, som er krav. :) Suk
Avatar billede froenie Nybegynder
14. juli 2006 - 12:19 #8
Ja suk....
Jeg tager desværre på ferie (eller heldigvis), så jeg tror ikke at jeg for kigget mere på det foreløbigt. Heller ikke sikkert jeg lige kan finde en løsning :)

Håber du får det løst snart, ellers giver jeg det et skud mere når jeg er tilbage.
Avatar billede sjh Nybegynder
15. juli 2006 - 12:28 #9
thewizard > Er du sikker på at det brugernavn/adgangskode har adgang til SQL-Serveren når du kommer ude fra.. ellers prøv med:

strHost = "localhost"
Avatar billede thewizard Nybegynder
16. juli 2006 - 21:39 #10
hey sjh, strHost = "localhost" ser ikke ud til at virke. Så får jeg beskeden: Serveren er ikke fundet, eller også har du skrevet forkert pass/user
Avatar billede thewizard Nybegynder
16. juli 2006 - 21:49 #11
og ang. om user/pass har adgang til SQL-serveren, når jeg logger på udefra;

Når jeg logger på, mens jeg sidder på serveren, logger jeg på med "SQL server authentication". Ikke "Windows authentication" :).. Hmm, svært at sige hvad det er.
Avatar billede sjh Nybegynder
16. juli 2006 - 21:52 #12
thewizard > Kan du komme på med andre sql-klinter..?? det er jo ikke sikkert at det er dit progarm som er problemet..

Hvad er det foren MS SQL-Server.. er det en light udgave??

Er det en SQL-Server du har hos dig selv??

Hvis det ikke er din egen SQL-Server så er der sikkert likket for port 1433
Avatar billede sjh Nybegynder
16. juli 2006 - 21:53 #13
likket for port 1433 > lukket for port 1433
Avatar billede thewizard Nybegynder
17. juli 2006 - 06:08 #14
Hey sjh, det er en SQL server som står på samme puter, som jeg bruger. Det er Microsoft SQL server 2005. Jeg har ikke prøvet at logge på andre SQL-servere. Har åbnet for port 1433 (eller forsøgt), uden held, desværre. Der ser ikke ud til at være firewall på den her puter.
Avatar billede sjh Nybegynder
17. juli 2006 - 11:43 #15
Prøv at logge på med en anden SQL-Client.. bare for at se om din SQL-Server lever.. den kan jo også været stoppet.. men det kan du jo lige se..
Avatar billede sjh Nybegynder
17. juli 2006 - 11:52 #16
Hmmm jeg kan se at PreLoginHandshake.. er noget med "Encryption not supported.."
http://www.eksperten.dk/spm/192889
Avatar billede thewizard Nybegynder
19. juli 2006 - 12:16 #17
hmm :) men hvordan får jeg den til at supporte så? Jeg bruger den ikke ligefrem til kryptering, oO
Avatar billede sjh Nybegynder
19. juli 2006 - 15:31 #18
Ja det er jo lige det.. Jeg bruger ikke MS SQL mere.. er godt tilfreds med MySQL.. men jeg kan se at der er mange som har problemmer med PreLoginHandshake()..

http://www.google.dk/search?q=PreLoginHandshake+Problems
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester