Hej! Det finns ju en kurs i att skriva en komponent för vb. Kan du inte utnyttja den och sedan ta de databas sakerna och lägga till? Givetvis skall jag försöka fixa det. När det gäller önskemål om artiklar finns det alltid "Kontakta mig/önska artikel" som är bra att fylla i när man kommer på någon artikel som önskas. Då kan även andra skribenter läsa och se om de kan ta på sig att försöka skriva artiklar. Jag har fått komponenten att fungera i grunden, även med databasaccess! Jepp, klart att du kan returnera en 2-dimensionell array! Funkar!vill göra tre skikt: asp - vb - db
Jag tänkte låta en VB-komponent sköta databas-access åt min ASP-sajt.
Finns det någon bra (=kort) tutorial till det?
Alltså:
Jag har en db med tabeller
i vb ska det finnas ex function getRs(SQLstmt) As ADODB.Recordset
som returnar ett recordset med tabellen från databasen.
(poängen är att när jag använder objektet i asp blir det kortare kod, plus att det blir enklare för andra att koda nya sidor, plus att ingen kan läsa källkoden inuti komponenten :)Sv: vill göra tre skikt: asp - vb - db
//DataknutteSv: vill göra tre skikt: asp - vb - db
Hälsningar
/PelleSv: vill göra tre skikt: asp - vb - db
Inte helt 100% som jag ville iofs...
jag kan bara returnera string, ville göra typ såhär egentligen:
function getRS(strSQL) as array(variant rows, variant cols)
'Kör SQL och få tillbaks RS, funkar
'...
Dim copiedRS as variant
copiedRS = rs.getString()
rs.close
set rs = nothing
'konvertera kopierat RS till array
'...
end function
hmm... nån som fattar hur jag menar? går det att returna en 2d-array?Sv: vill göra tre skikt: asp - vb - db
Function GetRS(strSQL As String) As Variant
'## -- skapa rs --
If Not rs.EOF Then
'## -- returnera 2-d array --
GetRS = rs.GetRows()
Else
GetRS = Nothing
End If
End Function
cya,
PatrikBSv: vill göra tre skikt: asp - vb - db
Min kod ser ut såhär:
<code>
[...]
Private rsArray As Variant
Public Function cols() As Long
cols = UBound(rsArray, 1)
End Function
Public Function rows() As Long
rows = UBound(rsArray, 2)
End Function
Public Function getValue(column, row) As String
If column > cols() Then
Err.Raise 40001, "dbTest::dbFace::getValue()", "Column > cols"
End If
If column < 0 Then
Err.Raise 40001, "dbTest::dbFace::getValue()", "Column < 0"
End If
If row > rows() Then
Err.Raise 40001, "dbTest::dbFace::getValue()", "Row > rows"
End If
If row < 0 Then
Err.Raise 40001, "dbTest::dbFace::getValue()", "Row < 0"
End If
getValue = CStr(rsArray(column, row))
End Function
</code>
och jag använder koden såhär:
<code>
for i = 0 to cols()
for j = 0 to rows()
str = str & getValue(i,j)
next
next
</code>
Men hur ska jag göra om rs är tomt?
Då får jag felmeddelande om inkompatibla typer i funktionen getValue...