Hej jag har en sträng som ser ut enligt nedan som jag skulle vilja mata in i en Mysqldatabas. Märk väl att jag vill ha in tre poster sedan vill jag att den skall lägga sig i nästa rad i databasen. OBS! Ehmmm... vill du ha Anna Bok;2,43;5,32;Kalle Hund;4,32;9,21;Bengt;2,54,8,21 på en och samma rad i tabellen, för att sedan ta nästa 3 poster på nästa rad i tabellen? Nedanstående exemplet skulle jag vilja veta hur jag gör. Jag har det ovanstående redan. Det första som slår mig, varför du använder en sådan sträng? Anna Bok;2,43;5,32;Kalle Hund;4,32;9,21;Bengt;2,54,8,21 Strängen som jag genereras med automatik och den är redan sammansatt. Det är några hundra värden så jag vill helst inte göra detta manuellt. Jag skall kolla på era lösningar men kommer ni på någonting så får ni skriva. hmm .. tror jag glömde en grej, <b>For i = 0 To UBound(arr) Step 3</b> kanske ger ett bättre resultat.. Får det inte riktigt att ungera, någon som kan hjälpa mig att skriva ut det mesta i koden? Här är ett avancerat exempel vilket använder ett ADODB Command objekt.Tabbavgränsad sträng till Mysql med hjälp av ASP
Anna Bok;2,43;5,32;Kalle Hund;4,32;9,21;Bengt;2,54,8,21 osv....
Såhär vill jag att det ser ut i databasen
Namn: Värde2: Värde3:
Anna Bok 2,43 5,32
Kalle Hund 4,32 9,21
Bengt 2,54 8,21
Kan någon hjälpa mig?Sv: Tabbavgränsad sträng till Mysql med hjälp av ASP
Vill inte använda några andra program utan det skall lösas från en asp fil.
Tack igen!Sv: Tabbavgränsad sträng till Mysql med hjälp av ASP
Eller är det så här
Namn: Värde2: Värde3:
rad 1 Anna Bok 2,43 5,32
rad 2 Kalle Hund 4,32 9,21
rad 3 Bengt 2,54 8,21
? Sv:Tabbavgränsad sträng till Mysql med hjälp av ASP
tack!Sv: Tabbavgränsad sträng till Mysql med hjälp av ASP
Är det inte enklare med en INSERT INTO tabell, värde 1,2,3(Anna, 2,43,5,57) och sen forstätta med nästa person?
Annars får du kolla på Split, loopa igenom den plocka ihop dina tre värden köra en insert och sen loopa vidare, men du kommer stöta på patrull om något värde fattas.Sv: Tabbavgränsad sträng till Mysql med hjälp av ASP
Du får helt enkelt splita efter var tredje ; eller splita vid varje ; och sedan för var tredje element i arrayn skapa en ny rad..
typ:
<code>
arr = split(str,";")
For i = 0 To UBound(arr)
Sql = "Insert into table(namn,val1,val2) VALUES('" & arr(i) & "','" & arr(i + 1) & "','" & arr(i + 2) & "')"
Obj.execute(Sql)
Next
</code> Finns förmodligen bättre sätt att göra det på om man vill dela upp strängen och ex 1 är namn, andra val1 och tredje är val2, och sen börjar man om.
Kanske kanske. Sv:Tabbavgränsad sträng till Mysql med hjälp av ASP
Tack!Sv:Tabbavgränsad sträng till Mysql med hjälp av ASP
Sv:Tabbavgränsad sträng till Mysql med hjälp av ASP
Sv: Tabbavgränsad sträng till Mysql med hjälp av ASP
Detta exempel förutsätter att varje post motsvarar en rad.
Option Explicit
Function InsertCommand(con)
Dim cmd
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = con
cmd.CommandText = "INSERT INTO TableName (NameField, Value1Field, Value2Field)" & vbCrLf & _
"VALUES (?, ?, ?)"
cmd.Parameters.Append cmd.CreateParameter("@name", adVarChar, adParamInput, 50)
cmd.Parameters.Append cmd.CreateParameter("@value1", adDouble, adParamInput)
cmd.Parameters.Append cmd.CreateParameter("@value2", adDouble, adParamInput)
cmd.Prepared = True
Set InsertCommand = cmd
End Function
Dim con
Dim cmd
Dim Cols
Dim Row
Dim Rows
Dim I
Const adVarChar = 200
Const adDouble = 5
Const adParamInput = 1
Const Data = "Anna Bok;2,43;5,32" + vbCrLf + "Kalle Hund;4,32;9,21" + vbCrLf + "Bengt;2,54;8,21"
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\My documents\DefaultDatabase.mdb;" & _
"Mode=Share Deny None;" & _
"Jet OLEDB:Engine Type=5;"
Set cmd = InsertCommand(con)
Rows = Split(Data, vbCrLf)
For Each Row In Rows
Cols = Split(Row, ";")
For I = 0 To 2
cmd.Parameters(I).Value = Cols(I)
Next
cmd.Execute , , adExecuteNoRecords
Next
con.Close