Avatar billede thewizard Nybegynder
25. januar 2006 - 09:25 Der er 9 kommentarer og
2 løsninger

Spørgsmål om VB og MsSQL

Okay, jeg bruger denne til at hente data ned fra min MsSQL-server (og f.eks. over i en list-box):

---------

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 = "***slettet***"
  strHost = "***slettet***"
  strBase = "multiedit"

  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 Form_Load()
Set objConn = CreateObject("ADODB.Connection")
  Set objRs = CreateObject("ADODB.RecordSet")


Dim noget
Dim login

   
  noget = MsSQL("***slettetIP***", _
                    "multiedit", _
                    "sa", _
                    "***slettet***", _
                    "", _
                    "SELECT * FROM documents WHERE ID = '" & frmLogin.lstdocuID.Text & "';", _
                    "")

        txtdocument.Text = objRs("text")
   
  objRs.Close
  objConn.Close
  Set objConn = Nothing
  Set objRs = Nothing
End Sub

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


Sætter 200 point på højkant til den som kan fortælle mig hvordan jeg lægger data over i min msSQL-server. Svaret skal fortælle hvordan data lægges i (ny linie af data), og hvordan eksisterende data ændres, osv.
Avatar billede thewizard Nybegynder
25. januar 2006 - 09:41 #1
svaret skal naturligvis også indeholde hvordan man sletter i SQL-serveren :)
Avatar billede sjh Nybegynder
25. januar 2006 - 16:13 #2
...
....
.....
    With objConn
        .CommandTimeout = 30
        .ConnectionTimeout = 15
        .ConnectionString = strConn
        .Open

        ' Disse (select, insert, update, delete) skal bare udføres med ...Execute(strSQL)
        ' http://www.w3schools.com/sql/sql_select.asp (udtræk data)
        ' http://www.w3schools.com/sql/sql_insert.asp (ny post)
        ' http://www.w3schools.com/sql/sql_update.asp (updater post)
        ' http://www.w3schools.com/sql/sql_delete.asp (slet post)
        Set objRs = .Execute(strSQL)
    End With

    Do While Not objRs.EOF
        List1.AddItem objRs("FeldtNavn") ' <- HUSK at ændre feldt navn..
        objRs.MoveNext
    Loop
Avatar billede sjh Nybegynder
25. januar 2006 - 16:22 #3
Jeg skulle måske lige sige at Do..Loop kun skal bruges til udtræk af data
Avatar billede thewizard Nybegynder
26. januar 2006 - 05:45 #4
Hey sjh.

Tak for svaret.

Jeg kan få den til at slette data, men ikke ændre/ny post.

Kan du udspecificere lidt?
Avatar billede sjh Nybegynder
26. januar 2006 - 14:36 #5
Jeg vil forslå at du bruger ID til at finde den post du vil opdater (WHERE ID = 4)
Så bliver det noget i den stil..

strSQL = "UPDATE Person SET Address = 'Ny Address', City = 'Ny City' WHERE ID = 4;"

...Execute(strSQL)
Avatar billede sjh Nybegynder
26. januar 2006 - 14:38 #6
Men nu er det jo lidt svært at lave den rigtige SQLString til dig når jeg ikke kender din tabel..
Avatar billede thewizard Nybegynder
26. januar 2006 - 19:40 #7
sjh, point er dine :)

Virker alt sammen ...

Men lille ekstra spørgsmål - hvis du kan svare på det er det jo bare skønt...

Jeg har oprettet en column som hedder "date", og den hedder under hvor man kan vælge int, nchar, osv.. hedder den "datetime". Men når jeg prøver følgende:


  noget = MsSQL("*slettet*", _
                    "tabel", _
                    "sa", _
                    "nooget", _
                    "", _
                    "insert INTO [chat] ([text], [user], [docuID], [date]) values ('--" & frmLogin.txtUser.Text & " joined chat', '" & frmLogin.txtUser.Text & "', '" & frmLogin.lstdocuID.Text & "', '" & now() & "');", _
                    "")
         

*** læg mærke til now() ***

Får jeg følgende error:

The conversion of a char data type to a datetime data type resulted in an out-of-range datatime value.

Prøver at lægge now() ind i dato-cellen.
Avatar billede thewizard Nybegynder
27. januar 2006 - 13:51 #8
Har fundet ud af det ;)
Avatar billede sjh Nybegynder
27. januar 2006 - 15:03 #9
hæ hæ.. det var da altid noget at der var en bruger som også selv kunne tenke :D

men 200 point er lige i over kanten.. hvis du selv smider et svar så kan vi dele.. 140 point til dig selv og 60 point til mig.. det passer til det her spm..
Avatar billede sjh Nybegynder
27. januar 2006 - 15:03 #10
Svar :D
Avatar billede thewizard Nybegynder
28. januar 2006 - 08:00 #11
svar så :) og takker
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