May 16, 2001
Är det någon som vet om man kan namnge tabeller i databaser med siffror, så att man sedan lättare m.h.a. en slinga kan mata in data i databasen? (Kör VB script på asp-sida)
Ex. här:
------------
Dim Connect, Database, Query, stats, i
Dim ArrayAttr
ArrayAttr = Array(Request.Form("Namn"), Request.Form("Psword")... osv)
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "statsDB"
Set stats = Server.CreateObject("ADODB.Recordset")
Query = "SELECT * FROM statsTBL"
stats.Open Query, Connect, adOpenStatic, adLockOptimistic
For i = 0 To 8
stats.AddNew
stats( i ) = ArrayAttr( i )
Next
-----------
där data från ArrayAttr läggs in i kolumn 0 till 8 i databasen (som alltså är döpta med respektive siffror).
Eller finns det något kommando i SQL som gör att man kan komma åt kolumnerna i databasen (trots att de har textnamn) efter vilken position dom har i raden(blir ju ett nummer istället för string, vilket underlättar loopar), och på så sätt lägga in informationen från formuläret?
Efter vad jag hört så finns det ett sifferindex till varje kolumn. Hur refererar man till dom i VB script alt. SQL?
May 24, 2001
Det är ganska enkelt faktiskt, säg att du har en tabell med 3 kolumner som heter "Namn", "Adress" och "Telefon". När du har öppnat tabellen med ett Recordset kan du läsa/skriva till den antigen med RS("kolumnnamn") (stats("xx") i ditt kodexempel) eller RS(kolumnnummer) (stats(i) som du använder), där kolumnnummer börjar på 0, alltså första kolumnen är "Namn" eller 0, andra "Adress" eller 1 osv.
I SQL måste du ange kolumnnamnet, t.ex. "SELECT Namn, Telefon FROM Adresslista"
I ditt exempel använder du redan sifferindex, du kan döpa kolumnerna till vad som helst i databasen, koden kommer att funka ändå.
Edit:
Hmm.. i din kod såg jag ett litet fel, länst ner, lägger du till en rad för varje kolumn, vilket verkar vara fel, man vill ju bara lägga till en rad och sen fylla i alla kolumner. Flytta "stats.AddNew" före "For i = 0 To 8"
[ Detta Inlägg ändrades av: Donan Fear den 2001-07-24 00:34 ]
1 Guest(s)