|
| Hvordan pokker klare jeg det Fra : Kåre Rasmussen |
Dato : 13-04-04 12:13 |
|
Hej Gruppe
Jeg sidder lige og arbejder med en database i visual basic. Jeg kan fint
connecte til den og hente et resultatsæt ud.
Men når feltet (x1) er tomt, så se det ud som om, at sTemp bliver sat til
Null og så opstår der en fejl
Koden ser således ud
On Error GoTo ErrHandle
Dim pAdoConn As ADODB.Connection
Dim pAdoRS As ADODB.Recordset
Dim sSQLstr As String
Dim sTemp as String
Dim iCounter as Integer
Dim sConnString As String
Set pAdoConn = New ADODB.Connection
Set pAdoRS = New ADODB.Recordset
sConnString = "DSN=geogis;" & _
"Uid=" & frmSetup.txtDBBrugerNavn.Text & ";" & _
"Pwd=" & frmSetup.txtDBKodeord.Text & ";"
pAdoConn.ConnectionString = sConnString
pAdoConn.Open
sSQLstr = frmSetup.txtSQL.Text
pAdoRS.Open sSQLstr, pAdoConn, adOpenDynamic, adLockOptimistic
iCounter = 0
Do Until pAdoRS.EOF
sTemp = pAdoRS!x1
If (len(sTemp) = 0 ) Then
MsgBox "sTemp er tom", vbOKOnly
iCounter = iCounter + 1
pAdoRS.MoveNext
Else
Loop
pAdoConn.Close
Set pAdoRS = Nothing
msgbox "Summen af tomme felter: " & iCounter, vbOkOnly
ErrHandle:
pAdoConn.Close
MsgBox "!!Fejl: " & Err.Description & ":" & Err.Number & _
"sTemp: " & sTemp, vbCritical
End Function
Håber der er en eller anden, som kan hjælpe
| |
Anton (13-04-2004)
| Kommentar Fra : Anton |
Dato : 13-04-04 12:43 |
|
"Kåre Rasmussen" <none@none.dk> skrev i en meddelelse
news:407bcafa$0$315$edfadb0f@dread16.news.tele.dk...
> Hej Gruppe
>
> Jeg sidder lige og arbejder med en database i visual basic. Jeg kan fint
> connecte til den og hente et resultatsæt ud.
> Men når feltet (x1) er tomt, så se det ud som om, at sTemp bliver sat til
> Null og så opstår der en fejl
> Koden ser således ud
>
> On Error GoTo ErrHandle
> Dim pAdoConn As ADODB.Connection
> Dim pAdoRS As ADODB.Recordset
> Dim sSQLstr As String
> Dim sTemp as String
> Dim iCounter as Integer
> Dim sConnString As String
>
> Set pAdoConn = New ADODB.Connection
> Set pAdoRS = New ADODB.Recordset
>
> sConnString = "DSN=geogis;" & _
> "Uid=" & frmSetup.txtDBBrugerNavn.Text & ";" & _
> "Pwd=" & frmSetup.txtDBKodeord.Text & ";"
>
> pAdoConn.ConnectionString = sConnString
>
> pAdoConn.Open
>
> sSQLstr = frmSetup.txtSQL.Text
>
> pAdoRS.Open sSQLstr, pAdoConn, adOpenDynamic, adLockOptimistic
>
> iCounter = 0
> Do Until pAdoRS.EOF
>
Her skal du nok teste hvad x1 er, alá:
If Not IsNull(pAdoRS!x1) Then
sTemp = pAdoRS!x1
Else
sTemp = ""
End If
Du kunne osse "snyde" lidt og tilføje en tom streng uanset hvad, så vil
sTemp aldrig kunne indeholde noget ulovligt.
sTemp = pAdorRS!x1 & ""
> sTemp = pAdoRS!x1
>
> If (len(sTemp) = 0 ) Then
> MsgBox "sTemp er tom", vbOKOnly
> iCounter = iCounter + 1
> pAdoRS.MoveNext
> Else
> Loop
>
> pAdoConn.Close
> Set pAdoRS = Nothing
> msgbox "Summen af tomme felter: " & iCounter, vbOkOnly
> ErrHandle:
> pAdoConn.Close
> MsgBox "!!Fejl: " & Err.Description & ":" & Err.Number & _
> "sTemp: " & sTemp, vbCritical
>
> End Function
>
> Håber der er en eller anden, som kan hjælpe
>
>
| |
Christian R. Larsen (13-04-2004)
| Kommentar Fra : Christian R. Larsen |
Dato : 13-04-04 12:14 |
|
Kender du funktionen IsNull?
If Isnull(sTemp) then...
Bare et hurtigt gæt på noget, der måske kan hjælpe...
"Kåre Rasmussen" <none@none.dk> skrev i en meddelelse
news:407bcafa$0$315$edfadb0f@dread16.news.tele.dk...
> Hej Gruppe
>
> Jeg sidder lige og arbejder med en database i visual basic. Jeg kan fint
> connecte til den og hente et resultatsæt ud.
> Men når feltet (x1) er tomt, så se det ud som om, at sTemp bliver sat til
> Null og så opstår der en fejl
> Koden ser således ud
>
> On Error GoTo ErrHandle
> Dim pAdoConn As ADODB.Connection
> Dim pAdoRS As ADODB.Recordset
> Dim sSQLstr As String
> Dim sTemp as String
> Dim iCounter as Integer
> Dim sConnString As String
>
> Set pAdoConn = New ADODB.Connection
> Set pAdoRS = New ADODB.Recordset
>
> sConnString = "DSN=geogis;" & _
> "Uid=" & frmSetup.txtDBBrugerNavn.Text & ";" & _
> "Pwd=" & frmSetup.txtDBKodeord.Text & ";"
>
> pAdoConn.ConnectionString = sConnString
>
> pAdoConn.Open
>
> sSQLstr = frmSetup.txtSQL.Text
>
> pAdoRS.Open sSQLstr, pAdoConn, adOpenDynamic, adLockOptimistic
>
> iCounter = 0
> Do Until pAdoRS.EOF
>
> sTemp = pAdoRS!x1
>
> If (len(sTemp) = 0 ) Then
> MsgBox "sTemp er tom", vbOKOnly
> iCounter = iCounter + 1
> pAdoRS.MoveNext
> Else
> Loop
>
> pAdoConn.Close
> Set pAdoRS = Nothing
> msgbox "Summen af tomme felter: " & iCounter, vbOkOnly
> ErrHandle:
> pAdoConn.Close
> MsgBox "!!Fejl: " & Err.Description & ":" & Err.Number & _
> "sTemp: " & sTemp, vbCritical
>
> End Function
>
> Håber der er en eller anden, som kan hjælpe
>
>
| |
Kåre Rasmussen (13-04-2004)
| Kommentar Fra : Kåre Rasmussen |
Dato : 13-04-04 13:14 |
|
"Christian R. Larsen" <crlarsen@hotmail.com> skrev i en meddelelse
news:c5gjr8$jn4$1@sunsite.dk...
> Kender du funktionen IsNull?
>
> If Isnull(sTemp) then...
>
> Bare et hurtigt gæt på noget, der måske kan hjælpe...
Kanon - virker lige efter planen.
Tak for hjælpen
Kåre
| |
Kåre Rasmussen (13-04-2004)
| Kommentar Fra : Kåre Rasmussen |
Dato : 13-04-04 13:22 |
|
"Christian R. Larsen" <crlarsen@hotmail.com> skrev i en meddelelse
news:c5gjr8$jn4$1@sunsite.dk...
> Kender du funktionen IsNull?
>
> If Isnull(sTemp) then...
>
> Bare et hurtigt gæt på noget, der måske kan hjælpe...
>
Håber du kan klare et spørgsmål mere
Når jeg står med pAdoRS efter jeg har kørt min SQL-sætning, er det så muligt
at se, hvor mange records den indeholder.
Jeg troede selv, at det var recordcount, men den er altid -1.
Håber du (eller en anden) kan hjælpe
På forhånd tak
Kåre
| |
Christian R. Larsen (13-04-2004)
| Kommentar Fra : Christian R. Larsen |
Dato : 13-04-04 14:03 |
|
"Kåre Rasmussen" <none@none.dk> skrev i en meddelelse
news:407bdb36$0$243$edfadb0f@dread16.news.tele.dk...
> > Bare et hurtigt gæt på noget, der måske kan hjælpe...
> >
> Håber du kan klare et spørgsmål mere
>
> Når jeg står med pAdoRS efter jeg har kørt min SQL-sætning, er det så
muligt
> at se, hvor mange records den indeholder.
> Jeg troede selv, at det var recordcount, men den er altid -1.
Det afhænger af recordsettets type og cursorens type, om du kan tælle
antallet af records, men nogle gange kan det løses med følgende:
pAdoRS.movefirst
pAdoRS.movelast
- hvorefter recordcount indeholder den korrekte værdi.
Ellers må du bare lave et loop, hvor du tæller antallet af poster. Selvom
det kan virke sært ift. arrays og andet, er det faktisk i mange tilfælde den
eneste løsning:
c=0
do until pAdoRS.eof
pAdoRS.movenext
c=c+1
loop
c indeholder nu antallet af records.
| |
|
|