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
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:
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 ?
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.
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.
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 :)
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.
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.
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.
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()..
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.