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