/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Database : "Den ønskede handling understøt~
Fra : Troels Thomsen


Dato : 22-05-03 09:07

Hej,

Jeg får fejlen "Den ønskede handling understøttes ikke af objektet eller
provideren."

jeg gør således:

db.Execute "ALTER TABLE setupDefaults ADD COLUMN dataBaseVersion BYTE"

Dim rec As Recordset
Set rec = New Recordset

rec.Open "select * from SetupDefaults", db, adOpenStatic, adLockReadOnly
rec!dataBaseVersion = 101 ' <----- HER SKER FEJLEN
rec.Close
Set rec = Nothing

Hvad gør jeg galt ?

Jeg tilføjer også nogle tekstfelter. I access er der en property der hedder
"tillad nullængde". Vil det sige at man får fejl hvis man prøver at skrive
en tom streng til databasen, eller gælder det også når man læser / åbner
databasen ?

db.Execute "ALTER TABLE Mobility ADD COLUMN RotationRightSliderA BYTE "

mvh Troels



 
 
Patrick Hayes (22-05-2003)
Kommentar
Fra : Patrick Hayes


Dato : 22-05-03 09:30

> rec!dataBaseVersion = 101 ' <----- HER SKER FEJLEN
skal der stå et "!" efter rec?

- patrick



Troels Thomsen (22-05-2003)
Kommentar
Fra : Troels Thomsen


Dato : 22-05-03 10:43

> > rec.Open "select * from SetupDefaults", db, adOpenStatic, adLockReadOnly
> > rec!dataBaseVersion = 101 ' <----- HER SKER FEJLEN
> skal der stå et "!" efter rec?
>

ja, derimod står der noget med readOnly i linien over ......
(jeg cut-n-pastede desværre tilfældigvis fra noget der skull åbnes readonly)

2. del af posten vil jeg dog stadig gerne have svar på.

mvh Troels



Johnny E Jensen (23-05-2003)
Kommentar
Fra : Johnny E Jensen


Dato : 23-05-03 06:04

Hej Troels


> Jeg tilføjer også nogle tekstfelter. I access er der en property der
hedder
> "tillad nullængde". Vil det sige at man får fejl hvis man prøver at skrive
> en tom streng til databasen, eller gælder det også når man læser / åbner
> databasen ?

Korrekt - du vil få en fejl hvis feltet har værdien NULL ved .Update - Hvis
du vil undgå dette, sætter du 'tillad null værdi' = Yes - nu vil du kun få
fejlen ved læsning af record sættet. det kan omgås ved:

On error Goto ErrorHandler
.....
.....
sKlaus=adRcd("Klaus") -> hvis adRcd("Klaus") har værdien NULL får du
fejl-nummer 94
.....


ErrorHandler:
If Err.Number=94 Then
Resume Next
Else

EndIf

/johnny



Tomas Christiansen (23-05-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 23-05-03 21:18

Johnny E Jensen skrev:
> On error Goto ErrorHandler
> ....
> ....
> sKlaus=adRcd("Klaus") -> hvis adRcd("Klaus") har værdien NULL får du
> fejl-nummer 94
> ....
>
>
> ErrorHandler:
> If Err.Number=94 Then
> Resume Next
> Else
>
> EndIf

Jo, det er også meget fint, men hvilken værdi har sKlaus så bagefter? Hvis
tildelingen fejler, beholdes den gamle værdi vel!

Jeg plejer at oprette en funktion NVL (taget direkte fra Oracles indbyggede
funktion NVL), som tester om 1. argument er Null. Hvis nej, returneres 1.
argument, hvis ja, returneres 2. argument. Derved opstår ingen køretidsfejl,
og man VED positivt hvilken værdi der tildeles.

Eksempel, hvor der tildeles den tomme streng (""), hvis adRcd("Klaus") er
Null:

sKlaus = NVL(adRcd("Klaus"), "")

-------
Tomas


Peter Lykkegaard (26-05-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 26-05-03 11:28


"Tomas Christiansen" <toc-01-nospam@blikroer.dk> wrote in message
news:balvjc$7e0$1@news.cybercity.dk...

> Eksempel, hvor der tildeles den tomme streng (""), hvis adRcd("Klaus") er
> Null:
>
> sKlaus = NVL(adRcd("Klaus"), "")
>
Eller den helt korte udgave

sKlaus = adRcd("Klaus") & ""

mvh/Peter Lykkegaard



Tomas Christiansen (26-05-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 26-05-03 21:47

Peter Lykkegaard skrev:
> Eller den helt korte udgave
>
> sKlaus = adRcd("Klaus") & ""

Ja, metoden er meget fiks, bortset fra at man benytter sig af en side-effekt
(eller bi-effekt) ved &-operatoren, og at den kun virker for strenge. Én
kunne for skade let komme til at fjerne & og "" i den tro at det ingen
betydning har!

Jeg vil til enhver tid anbefale at pakke det ind i en funktion, som bør
kunne tage flere typer parametre: String, Long, Double. Det er efter min
mening et af de _ganske få_ steder hvor datatypen Variant giver mening i VB
(altså typen på parametrene til funktionen NVL, hvis virkemåde jeg beskrev
lidt tidligere i tråden).

-------
Tomas


Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste