Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:01 Der er 12 kommentarer og
1 løsning

Overblik over en tabel

Hvordan får man en liste over de felter der er i en tabel og deres datatype - f.eks.:
-Id int
-Navn nvarchar

osv.
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:10 #1
Du henter oplysningerne i følgende tabeller:
sysobjects, syscolumns, systypes:
Følgende sql henter alle felte ud fra en bestemt tabel

SELECT sysobjects.name, syscolumns.id,
    syscolumns.name AS Expr1, syscolumns.length,
    syscolumns.xusertype, systypes.xtype,
    systypes.name AS Expr2
FROM sysobjects INNER JOIN
    syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
    systypes ON
    syscolumns.xusertype = systypes.xtype
WHERE (sysobjects.name LIKE \'din_tabel\')
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:10 #2
Jeg går ud fra du benytter MS SQL
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:37 #3
ja hvad ellers  *G*

findes der andet?
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:40 #4
Nææ.... der gør der vel ikke. hehe!
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:40 #5
Kunne du bruge svaret eller hva?
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:42 #6
jeg er lige ved at teste... *SS* men det går jeg ud fra
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:44 #7
Jamen giv dig bare god tid *ZZZ*. Jeg har en stor tålmodighed ;)
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:46 #8
jeg fatter det ikke helt.

Jeg laver følgende:
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
rs.open \"SELECT sysobjects.name, syscolumns.id, syscolumns.name AS Expr1, syscolumns.length, syscolumns.xusertype, systypes.xtype, systypes.name AS Expr2 FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xusertype = systypes.xtype WHERE (sysobjects.name LIKE \'liste\"&Session(\"id\")&\"\')\" , DataConn,1,3
do while not rs.eof

Response.Write \"[\"&rs(\"????\")&\"]<br>\"
rs.movenext
loop
rs.Close
set rs=nothing

(Se brot fra tabel navnet *S*)

Hvordan skriver jeg så værdierne ud?

rs(\"name\")??
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:47 #9
nåååå hvor er jeg dum.... Expr2 og Expr1 skal bruges *S*
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 10:50 #10
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
rs.open \"SELECT sysobjects.name, syscolumns.id, syscolumns.name AS Expr1, syscolumns.length, syscolumns.xusertype, systypes.xtype, systypes.name AS Expr2 FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xusertype = systypes.xtype WHERE (sysobjects.name LIKE \'liste\"&Session(\"id\")&\"\')\" , DataConn,1,3
do while not rs.eof

Response.Write \"[\"&rs(\"Expr1\")&\"]<br>\"
rs.movenext
loop
rs.Close
set rs=nothing


Hvorfor udskriver den samme værdier flere gange?
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 10:51 #11
Hmmm jeg har oxo været lidt lumsk.
Du skal jo navngive de rækker du skal bruge.

Her er den omskrevet:

SELECT sysobjects.name, syscolumns.id, syscolumns.name AS Kolonnenavn, syscolumns.length, syscolumns.xusertype, systypes.xtype, systypes.name AS KolonneType FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xusertype = systypes.xtype WHERE (sysobjects.name = \'tabel_navn\')

Do while ...bla.bla
Response.Write rs(\"KolonneNavn\") & \",\" & rs(\"KolonneType\")
rs.movenext
Loop
Avatar billede jens_lyn Nybegynder
30. oktober 2000 - 11:15 #12
hvordan checker man egentlig om et felt er tomt i en where sætning. where email=\'\' duer da ikke, gør den?
Avatar billede hornshoj Nybegynder
30. oktober 2000 - 11:18 #13
Hmm et felt kan være tomt på 2 måder.
Et der er en tom streng i feltet (\'\') eller det kan være Null.
Hvilken én mener du?
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