I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det kan nu være meget smart at smide det i et array, da man så kan lukke sit ercordset, eller genbruge det...REcordset er jo mere resource krævende end array\'s
nil.dk der findes et hav af sorterings algoritmer...Så svært bliver det ikke, men resourcekrævende ja, men da et recordset i bund og grund også er et array, så er det vel samme surdej....
Of course.....Men det er også sortering på database niveau. Så vi er da enige om at det bedre kan betale sig at bede databasen sortere inden at den smider det i et recordset...;)
Min tabel indeholder en masse sange, som er sat ind i en mappe sorteret efter deres ID. Mit problem opstår når jeg skal genere indholdsfortegnelser til min mappe. At lave en indholdsfortegnelse, der er sorteret efter ID (altså placering i mappe) er selvfølgelig ikke noget problem, MEN at lave en indholdsfortegnelse sorteret alfabetisk er svær, fordi at min database ikke ved hvad nr. sangen har i mappen. Der kan nemlig godt være huller i mine ID´er. Dvs. at feltet ID (som er autonumber) starter med 1,2,3 og så springer den måske til 6 fordi jeg har slettet nogle sange. Derfor kan jeg ikke antage at ID feltet er = sangens placering i mappen.
Derfor er jeg nødt til at starte med at sortere recordsettet efter ID - Dette giver mig sangenes placering i mappen. Herefter kan jeg een for een putte sangens titel + et tal (der angiver placering i mappen) ind i et array.
Sagt med andre ord: Min database fortæller mig ikke hvad sangenes placering er, derfor er jeg nødt til at beregne den selv.
Du siger at ID\'et fra databasen (det autonumerede id) angiver sangens placering i mappe. Men hvis du laver \'select id,titel from tabellen order by titel\' Vil du jo stadig have id\'et der er tilhørende til sangen ????
så en udskrivning af recordsette, vil da liste sangene alfabetisk, samt deres placering i mappen, eller hur ????
Så de skal altså være sorteret efter titel og samtidig have et fortløbende nummer efter deres placering i tabellen. Ja, ja, den er svære at greje sådan en torsdag eftermiddag :-))
SQL1 = \"select title from tabellen\" SQL2 = \"select count(title) as antal from tabellen\" set rs1 = myConn.execute(SQL1) set rs2 = myConn.execute(SQL2) Dim MyArray(cint(rs2(\"antal\")))
************<% SQL1 = \"select title from tabellen\" SQL2 = \"select count(title) as antal from tabellen\" set rs1 = myConn.execute(SQL1) set rs2 = myConn.execute(SQL2) Dim MyArray(cint(rs2(\"antal\")),0) dim counter counter = 0 While NOT rs2.EOF myArray(counter,0) = rs2(\"title\") myArray(counter,1) = counter + 1 counter = counter + 1 rs2.movenext wend
%>
********* så har du et fler dim. array.. i myArray(0,0) står så titlen og i myArray(0,1) står så nummeret i dette tilfælde nummer 1. og så fremdeles.
aaaarrrgh ja det er jo sidst på dagen :Prøver igen : ************<% SQL1 = \"select title from tabellen\" SQL2 = \"select count(title) as antal from tabellen\" set rs1 = myConn.execute(SQL1) set rs2 = myConn.execute(SQL2) Dim MyArray(cint(rs2(\"antal\")),1) dim counter counter = 0 While NOT rs2.EOF myArray(counter,0) = rs2(\"title\") myArray(counter,1) = counter + 1 counter = counter + 1 rs2.movenext wend
Bare et lille forslag til en alternativ måde at smide data op i sit array på:
set conn = server.createobject(\"ADODB.Connection\") conn.open \"DSN\", \"uid\", \"pwd\" sql = \"select id, titel from musiktabel order by id desc\"
SET RES = Conn.Execute(sql) n = RES.EOF If n >= 0 Then a = RES.GetRows() RES.Close for row = 0 to ubound(a,2) id = a(0,row) titel = a(1,row) Response.write row &\" \"&titel next else Response.write \"Tomski\" End If conn.close set conn = nothing
Error Type: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0402) En heltalskonstant var ventet /pages/indeks/Default.asp, line 24, column 12 Dim MyArray(antal,1) -----------^
<!--#include virtual=\"/includes/asp/createRecordset.inc\"--> <% strSQL = \"SELECT * FROM sange WHERE sangType = 2 ORDER BY ID ASC\" %> <!--#include virtual=\"/includes/asp/openReadOnly.inc\"-->
<% antal = rs.RecordCount antal = antal - 1 Dim MyArray() redim MyArray(antal,1) counter = 0 %>
<% while not rs.EOF myArray(counter,0) = rs(\"titel\") myArray(counter,1) = counter + 1 counter = counter + 1 rs.movenext wend %>
Hvis ovenstående kode kan optimeres yderligere modtager jeg meget gerne kritik :-)
Synes godt om
Ny brugerNybegynder
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.