Avatar billede Slettet bruger
02. januar 2010 - 11:48 Der er 5 kommentarer og
1 løsning

Database-indhold til array

Hej alle Eksperter


Når der trækkes en enkelt post ud af en database vha. en SQL-sætning:

sql = "SELECT * FROM table WHERE id = '001'"

kan jeg nu hente data fra alle de felter, der hører til denne post med id'en 001. Fx vil der i feltet fornavn stå Jens, i feltet postnr stå 9000 osv.

Hvilken metode kan nu benyttes til at samle alle felternes data i en array vha. ASP?

  // Steeven
Avatar billede keysersoze Guru
02. januar 2010 - 13:17 #1
Set rs = Conn.Execute(SQL)
arrIndhold = rs.getrows()
Avatar billede Slettet bruger
02. januar 2010 - 13:33 #2
@Keysersoze


rs.getrow() henter samtlige poster i tabellen.
Jeg forsøger ikke at trække alle posterne (rækkerne) ned i en array men derimod at trække alle felterne (eller kolonnerne om  man vil) for én bestemt post ned i en array. Så jeg i min array har fx følgende:

fornavn => Jens
efternavn => Jensen
postnr => 9000
tlf => 12345678
...

Altså, en array med alle data for netop den valgte post.


  // Steeven
Avatar billede keysersoze Guru
02. januar 2010 - 13:44 #3
getrows trækker kun de data ud der er i dit recordset - ikke alt hvad der er i din tabel og da arrays ikke er navnebaseret men talindeksbaseret vil tabelnavne ikke komme med og det har du måske behov for?
Avatar billede Slettet bruger
02. januar 2010 - 20:03 #4
Jeg har eksperimenteret lidt og det fungerer med dette:

p = rs.getrows()
response.Write p(0,0)

Så kan jeg med response.Write vise værdien af de forskellige felter for de forskellige poster. p(1,0) henter 2. felt i 1. række, altså i 1. post i tabellen. p(2,0) henter 3. felt i 1. række, og p(1,4) henter 2. felt i 5. række osv. Det fungerer som x- og y-koordinater.

Tak for dit svar. Det ville være optimalt med en array sat op som dette:

fornavn => Jens
efternavn => Jensen
postnr => 9000
tlf => 12345678
...

for at koble overskrift sammen med data med det samme og for at kunne "finde" en bestemt overskrift i array'en fremfor at "tælle" sig frem til den. Er dette muligt?

I dokumentation for GetRows() står der dette:

"
vararray=objRecordset.GetRows(rows,start,fields)

...

fields:
Optional. If you want to specify only the fields that the GetRows call will return, it is possible to pass a single field name/number or an array of field names/numbers in this argument
"

Det vil sige, at man bør kunne hente et felts værdi OG dets navn... Men hvordan?


  // Steeven
Avatar billede keysersoze Guru
03. januar 2010 - 17:27 #5
parametrene er kun til at begrænse - rows begrænser antal rækker, start hvis du vil springe nogle over og fields hvis du kun vil have enkelte kolonner ud. med getrows får du kun data og ingen navne - så skal du have det resultat du søger skal du nok hen og opfinde din egen funktion, evt med hjælp fra denne; http://visualbasic.ittoolbox.com/documents/getting-column-names-from-a-table-12204
Avatar billede Slettet bruger
03. januar 2010 - 17:42 #6
Tak for linket - jeg får kigget på det.


  // Steeven
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