Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:22 Der er 34 kommentarer

antal kolonner

skal bruge et script der kan retunere antal kolonner i min database.
Avatar billede bootie Nybegynder
31. juli 2005 - 23:29 #1
Må jeg være så fræk at spørge: Hvorfor dog det? Du har vel selv designet databasen?

Mener du ikke Rows istedet for kolonner?
Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:31 #2
ah selvfølgelig. Hehe klokken er mange og jeg skulle være gået i seng for længst.
Avatar billede bootie Nybegynder
31. juli 2005 - 23:31 #3
For at hente antalet af rows i en tabel gør du med:

SELECT COUNT(*) FROM 'tablenavn'

mener jeg
Avatar billede bootie Nybegynder
31. juli 2005 - 23:34 #4
Antalet af rows ligget så i resultsettets første position

Response.Write resultset(0)
Avatar billede arne_v Ekspert
31. juli 2005 - 23:34 #5
uden '' omkring tabelnavn
Avatar billede arne_v Ekspert
31. juli 2005 - 23:36 #6
Det hænder iøvrigt at en web applikation har brug for dynamisk at
udforske en ukendt database - og det kan godt lade sig gøre at finde
kolonnerne i en tabel. Men det er mest brugt, enten hvis man skal
lave en database administration web applikation eller hvis man skal
have lavet en masse rettelser i en database og det er hurtigere
at lave et script som looper over tabeller og kolonner.
Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:37 #7
så jeg skriver fx.

<%
SELECT COUNT(*) FROM test
%>

<%response.write resultset("0")%>
Avatar billede bootie Nybegynder
31. juli 2005 - 23:39 #8
Ja eller du skal jo lige lave din database objekt og fyre en SQL query afsted.

Jeg regnede med du allerede havde sådan een da du ville vide hvor mange rows din database hed!
Avatar billede arne_v Ekspert
31. juli 2005 - 23:39 #9
Nej.

Du laver en ADODB.Connection og udfører query på den.
Avatar billede arne_v Ekspert
31. juli 2005 - 23:40 #10
eksempel:

<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=SQLOLEDB;Data Source=ARNEPC3;Initial Catalog=test;Integrated Security=SSPI;"
Set rs = con.Execute("SELECT content FROM texttest WHERE id = 3")
Response.Write rs("content")
Set rs = Nothing
Set con = Nothing
%>
Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:41 #11
jeg har en connection jeg includere i mine asp filer

men hvordan skal jeg så skrive det?
Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:42 #12
arne v>> skal det være i en fil for sig selv eller skal det være i den fil hvor jeg vil vise resultatet?
Avatar billede bootie Nybegynder
31. juli 2005 - 23:44 #13
Alt efter hvilken database du skal du lave en connection til den.

Her er et eksempel til MySQL:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Set resultSet = Server.CreateObject("ADODB.Recordset")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=database; UID=username; PWD=password;"

SQL = "SELECT COUNT(*) FROM kkauto_items"
Set resultSet = conn.execute(SQL)
Response.Write resultSet(0)
%>

For en Access database ser denne linie

Set resultSet = Server.CreateObject("ADODB.Recordset")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=database;

lidt anderledes ud
Avatar billede bootie Nybegynder
31. juli 2005 - 23:46 #14
it-studerende det forekommer mig at du slet ikke ved noget om ASP??

Jeg kan anbefale dig at læse afsnittet om ASP Tutorial på www.html.dk
Det er skide godt til at komme igang på. Det berøre let alle de dynamiaske aspekter ved ASP og hvad man kan bruge det til.
Avatar billede it-studerende Nybegynder
31. juli 2005 - 23:54 #15
nu bruger jeg MS SQL som database, skal select se anderledes ud så?
Avatar billede bootie Nybegynder
31. juli 2005 - 23:59 #16
Nej det tror jeg ikke.
Virker den da ikke?
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:00 #17
nej
Avatar billede bootie Nybegynder
01. august 2005 - 00:01 #18
Men din database forbindelse virker fint nok?
Hvilken fejl får du
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:02 #19
jeg har brugt denne her streng

<% set rs = con.Execute("SELECT COUNT(*) FROM adresse") Set resultSet = conn.execute(content(0)) %>
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:02 #20
ja ja min forbindelse virker fint, alle mine andre funktioner virker.
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:02 #21
fejlen

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/bund.asp, line 95

set rs = con.Execute("SELECT COUNT(*) FROM adresse") Set resultSet = conn.execute(content(0))
-----------------------------------------------------^
Avatar billede bootie Nybegynder
01. august 2005 - 00:08 #22
Det er ikke en SQL fejl.

du skal bare kalde

SQL = "SELECT COUNT(*) FROM adresse"
Set resultSet = conn.execute(SQL)
Response.Write resultSet(0)

Prøv at brug dette kode istedet.
Avatar billede bootie Nybegynder
01. august 2005 - 00:08 #23
Du skal jo kun lave een execute.
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:10 #24
nu kommer denne her fejl

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/bund.asp, line 96
Avatar billede bootie Nybegynder
01. august 2005 - 00:12 #25
SQL = "SELECT COUNT(*) FROM adresse"
Set resultSet = conn.execute(SQL)
If not resultset.EOF Then
  Response.Write resultSet(0)
Else
  Response.Write "Ingen retur kode"
End If

Hvordan køre det?
Avatar billede bootie Nybegynder
01. august 2005 - 00:13 #26
Hvad står der i linie 96?
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:15 #27
samme fejl

linje 96: Set resultSet = conn.execute(SQL)
Avatar billede bootie Nybegynder
01. august 2005 - 00:17 #28
Har du lavet en conn object?
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=database; UID=username;

conn.Open linien vil helt sikkert se lidt anderledes ud når du min bliver andet end MySQL.
Men det er nok der problemet er
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:19 #29
det er min forbindelsesåbner:

<%
Set rs = Server.CreateObject("ADODB.Connection")
rs.open = "Provider=SQLOLEDB;Data Source=xxxxx;Initial Catalog=test;User Id=xxxxx;password=xxxxx;"
%>
Avatar billede bootie Nybegynder
01. august 2005 - 00:19 #30
"når du nu bruger en anden database"  skulle der stå
Avatar billede bootie Nybegynder
01. august 2005 - 00:22 #31
Ja men det skal jo ikke være RS.
Det er din connection til databasen.
Så rename den variable til connection eller conn og lav en anden til resultset

Set resultSet = Server.CreateObject("ADODB.Recordset")

Det er i og for sig lige meget hvad du kalder dem, men hvis du giver dem navne der giver mening vil du også bedre kunne finde ud af at bruge dem

Din connection som du fyre SQL queries af med kalder du conn eller DBconn eller connection

Dit Resultset som du ligger et evt. resultat i kalder du rs eller RS eller resultset eller result eller hvad du nu synes er passende.
Avatar billede it-studerende Nybegynder
01. august 2005 - 00:24 #32
må jeg kigge på i morgen, nu må jeg i seng skal alt for tidligt op i morgen.
Avatar billede bootie Nybegynder
01. august 2005 - 00:29 #33
Ja, men husk at resultset og databaseforbindelsen er to forskellige objekter.

Og når du prøver at lave en conn.execute(dimmer) på et object 'conn' som du slet ikke har initieret som noget kan den ikke finde ud af det.

Lav en conn der er din database forbindelse og en result der er dit resultset

Så burde en

Set result = conn.execute("SELECT COUNT(*) FROM adresse")

med alt held virke
Avatar billede bootie Nybegynder
01. august 2005 - 00:30 #34
godnat og held og lykke
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