Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 06-05-2003, 15:56
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Hey,

Ik ben nu een programma in VB aan het maken. Dit programma is gekoppeld aan een MySQL Database. Ik heb MyOLEDB 3, VB 6 en MySQL 3.23.49.

Als ik nu een recordset probeer te updaten dan krijg ik voortdurend errors.

Bijv.:
- dat de recordset niet geupdate kan worden omdat hij hem niet meer kan vinden -> doordat hij gewijzigd is sinds de laatste keer.
- dat de recordset niet geupdate kan worden door de verkeerde LockType (dat is alleen de locktype veranderen dus dat lukt wel)
- dat er fouten zijn opgetreden bij een bewerking die uit meerdere stappen bestaat.

Kan iemand mij vertellen hoe ik recordsets kan updaten?
Wat voor LockType, CursorType en CursorLocation ik moet gebruiken?

Ik gebruik (o.a.) deze query: "SELECT * FROM accounts WHERE username = ' " & username & "'", DBConn
(DBConn is uiteraard de connectie met de database)

Ik heb wel andere programmaatjes (niet door mij geschreven) die ik als voorbeeld gebruik, maar als ik precies hetzelfde doe dan werkt het niet..

Voor de rest werkt alles wel: gegevens ophalen, nieuwe recordsets toevoegen, recordsets verwijderen etc...
Alleen het updaten werkt dus niet.

Ik hoop dat iemand mij hiermee kan helpen.

Alvast bedankt!
Met citaat reageren
Advertentie
Oud 06-05-2003, 16:21
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Citaat:
-= Mr.Whoopee=- schreef op 06-05-2003 @ 16:56:
Ik gebruik (o.a.) deze query: "SELECT * FROM accounts WHERE username = ' " & username & "'", DBConn
(DBConn is uiteraard de connectie met de database)
Ik weet weinig over VB, maar deze SQL query kan niet helemala volgen.

SELECT *
FROM accounts
WHERE username = "blah"
AND nummer = 13

Ik weet niet wat jij doet boven, maar weet je zeker dat je query wel goed is?
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 06-05-2003, 16:35
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Die query is iig wel goed om gegevens uit een db te halen:
Dit staat er dus eigenlijk:

"SELECT * FROM accounts WHERE username = 'Mr.Whoopee'", DBConn

maar ik weet niet of je deze ook kan gebruiken bij updaten..
Met citaat reageren
Oud 06-05-2003, 16:44
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Oh oke, dan heb ik verkeerd gezien.

Met je VB probleem kan ik je helaas niet helpen.
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 06-05-2003, 19:53
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Ow.. jammer...
Iemand anders? Of iemand die weet waar ik het kan vinden?
Met citaat reageren
Oud 06-05-2003, 20:00
Stijn
Avatar van Stijn
Stijn is offline
Citaat:
-= Mr.Whoopee=- schreef op 06-05-2003 @ 16:56:
Hey,

Ik ben nu een programma in VB aan het maken. Dit programma is gekoppeld aan een MySQL Database. Ik heb MyOLEDB 3, VB 6 en MySQL 3.23.49.

Als ik nu een recordset probeer te updaten dan krijg ik voortdurend errors.

Bijv.:
- dat de recordset niet geupdate kan worden omdat hij hem niet meer kan vinden -> doordat hij gewijzigd is sinds de laatste keer.
- dat de recordset niet geupdate kan worden door de verkeerde LockType (dat is alleen de locktype veranderen dus dat lukt wel)
- dat er fouten zijn opgetreden bij een bewerking die uit meerdere stappen bestaat.

Kan iemand mij vertellen hoe ik recordsets kan updaten?
Wat voor LockType, CursorType en CursorLocation ik moet gebruiken?

Ik gebruik (o.a.) deze query: "SELECT * FROM accounts WHERE username = ' " & username & "'", DBConn
(DBConn is uiteraard de connectie met de database)

Ik heb wel andere programmaatjes (niet door mij geschreven) die ik als voorbeeld gebruik, maar als ik precies hetzelfde doe dan werkt het niet..

Voor de rest werkt alles wel: gegevens ophalen, nieuwe recordsets toevoegen, recordsets verwijderen etc...
Alleen het updaten werkt dus niet.

Ik hoop dat iemand mij hiermee kan helpen.

Alvast bedankt!
Staat je cursor type wel goed?
__________________
Helpdesk: chat@scholieren.com | server: irc.scholieren.com | persoonlijk: stijntje@scholieren.com
Met citaat reageren
Oud 06-05-2003, 21:04
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Ik heb mijn CursorType op adUseClient staan..
maar ik heb het ook al geprobeerd met adUseServer geprobeerd

Code:
Public Sub UpdateUser(I)
Dim UAUsername, UAScreenX, UAScreenY, UAPosX, UAPosY, UAChar As String
    Set RsUpdateAll = New ADODB.Recordset
    RsUpdateAll.CursorType = adOpenStatic
    RsUpdateAll.CursorLocation = adUseClient
    RsUpdateAll.LockType = adLockOptimistic
    
    RsUpdateAll.Open "SELECT * FROM accounts", DBConn
        If RsUpdateAll("CharacterName") = Form1.FGUsers.TextMatrix(I, 5) Then
            RsUpdateAll("ScreenX").Value = Form1.FGUsers.TextMatrix(I, 1)
            RsUpdateAll("ScreenY").Value = Form1.FGUsers.TextMatrix(I, 2)
            RsUpdateAll("posX").Value = Form1.FGUsers.TextMatrix(I, 3)
            RsUpdateAll("posY").Value = Form1.FGUsers.TextMatrix(I, 4)
            Exit Sub
        Else
            RsUpdateAll.MoveNext
        End If
        'MsgBox UAUsername & vbCrLf & UAScreenX & vbCrLf & UAScreenY & vbCrLf & UAPosX & vbCrLf & UAPosY
        'RsUpdateAll.Update
        'RsUpdateAll.Close
End Sub
Ik hoop dat de layout nog een beetje netjes blijft...


Hij geeft nu vooral de fout bij RsUpdateAll.Update (hier eruit gecommented)
Met citaat reageren
Oud 07-05-2003, 10:04
Hedgehog
Hedgehog is offline
Citaat:
"SELECT * FROM accounts WHERE username = ' " & username & "'", DBConn
Weet je zeker dat dat goed gaat?
Je hebt namelijk wel quotes binnen de quotes, deze " quote zeg maar.
Met citaat reageren
Oud 07-05-2003, 10:45
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Die quotes moeten wel..
anders geeft ie aan dat hij de column niet kon vinden in de DB (en het is dus geen column maar gewoon een waarde die in de column username/charactername staat)

dat klopt wel..
maar ik weet dus niet of ik wel WHERE mag en kan gebruiken bij het updaten.. ik heb namelijk voorbeelden waar ze dat niet bij doen en waar het updaten wel werkt..
maar daar updaten ze gewoon degene die je op dat moment hebt geselecteerd of alle rijen in één keer...
maar ik moet dus speciaal deze hebben..
Met citaat reageren
Oud 07-05-2003, 10:49
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Trouwus.. deze code heb ik nog zo aangepast dat hij gewoon door alle accounts heen loopt en dan kijkt of de charactername hetzelfde is. Als dat het geval is dan gaat ie updaten.. Dus zonder WHERE.

maar het wil maar niet werken.. (bij de .update blijft ie altijd hangen..)
Met citaat reageren
Oud 07-05-2003, 11:01
Hedgehog
Hedgehog is offline
bij UPDATE kan je WHERE gebruiken dat is geen probleem wel een probleem als je het niet gebruikt bij veel handelingen hehe
maar wat ik met de quotes bedoel is dat hij misschien alleen dit: "SELECT * FROM accounts WHERE username = ' " leest, maar weet het niet zeker ik gebruik het niet in combinatie met vb maar met php.
Misschien dat " " er wel tussen mag als het tussen ' ' zit zoals bij jou maar dat heb ik nog nooit geprobeerd...
Nou veel succes er maar mee.
Met citaat reageren
Oud 07-05-2003, 11:28
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
In VB gaat dat een beetje moeilijk.. (die quotes omdraaien)

want als je deze ' niet binnen deze " zet dan wordt het dus een comment.. en dat moet dus niet..
ik kan ze ook niet weg laten want dan werkt het ook niet..

maar iig bedankt
Met citaat reageren
Oud 07-05-2003, 11:48
Hedgehog
Hedgehog is offline
Nee je begrijpt me verkeerd, maar ik ben ook erg slecht in uitleggen.
Code:
"SELECT * FROM accounts WHERE username = ' <gebruikersnaam hier> ' "
dat is zeg maar wat de bedoeling is
maar ik weet niet of dat met vb te maken heeft ofzo, maar dit:
Code:
"SELECT * FROM accounts WHERE username = ' "<gebruikersnaam hier> " ' "
zal volgens mij gelezen worden als
Code:
"SELECT * FROM accounts WHERE username = ' "
maar dat weet ik niet zeker, omdat jij met vb werkt...
denk dat je er weinig aan zult hebben, maar ik weet ook niet of daar het probleem bij jou zit.
Met citaat reageren
Oud 07-05-2003, 11:50
dafelix
Avatar van dafelix
dafelix is offline
Citaat:
-= Mr.Whoopee=- schreef op 07-05-2003 @ 12:28:
In VB gaat dat een beetje moeilijk.. (die quotes omdraaien)

want als je deze ' niet binnen deze " zet dan wordt het dus een comment.. en dat moet dus niet..
ik kan ze ook niet weg laten want dan werkt het ook niet..

maar iig bedankt
ik kan het niet helemaal volgen (ik lees te snel), maar bij het inlezen iig maakt het niet uit tussen of er quote's staan

als je in VB een " in een string wil zetten moet je Char(34) gebruiken dus:

String = "Ik zeg:" & Chr(34) & " bedankt " & Chr(34) & "."

goed ik zal er wel weer helemaal naast zitten odmat ik niet goed lees....
__________________
$karma++;
Met citaat reageren
Oud 07-05-2003, 11:56
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Ik denk eigenlijk dat het probleem niet bij die quotes zit..
maar ik snap ook niet waarom hij de fout melding geeft dat hij de recordset niet meer kan vinden.

Alle gegevens kloppen, de database werkt en kan ik gewoon gebruiken vanuit VB, maar het updaten wil hij dus gewoon niet doen.

Dus met RsUpdateAll.update
maar bedankt voor jullie hulp.. als jullie nog wat ideeen hebben hoor ik ze graag..
Met citaat reageren
Oud 07-05-2003, 11:58
Hedgehog
Hedgehog is offline
Als je bedoelt updaten naar de database, waar is die query dan?
Met citaat reageren
Oud 07-05-2003, 12:02
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
de query is dus die query die er in staat..
maar om vanuit VB met MySQL te werken moet het updaten anders.

Zo bijvoorbeeld:

[query]
RsUpdateAll("username").value = "nieuwe username"
RsUpdateAll.Update

Terwijl je bijvoorbeeld in PHP gewoon de update query gebruikt.
maar die bestaat dus niet in de VB versie...
Met citaat reageren
Oud 07-05-2003, 12:06
Hedgehog
Hedgehog is offline
Nee okay, de verschillen zijn te groot dus ik kan je niet helpen.
Misschien dat er later nog eens iemand komt loeren die het wel weet.
Met citaat reageren
Oud 07-05-2003, 12:45
WijfMan
WijfMan is offline
Citaat:
Hedgehog schreef op 07-05-2003 @ 12:48:
Nee je begrijpt me verkeerd, maar ik ben ook erg slecht in uitleggen.
Code:
"SELECT * FROM accounts WHERE username = ' <gebruikersnaam hier> ' "
dat is zeg maar wat de bedoeling is
maar ik weet niet of dat met vb te maken heeft ofzo, maar dit:
Code:
"SELECT * FROM accounts WHERE username = ' "<gebruikersnaam hier> " ' "
zal volgens mij gelezen worden als
Code:
"SELECT * FROM accounts WHERE username = ' "
maar dat weet ik niet zeker, omdat jij met vb werkt...
denk dat je er weinig aan zult hebben, maar ik weet ook niet of daar het probleem bij jou zit.
Int = "test"
"Dit is een ' " & Int & " ' regel."

Die & zorgt er voor dat het aan elkaar wordt geplakt, of zo
En die vergeet jij

Er komt dus uit: Dit is een ' test ' regel.
Tja, zo werkt het nu eenmaal in vb
__________________
Im Not Here To Mingle. Im Here To Annoy.
Met citaat reageren
Oud 07-05-2003, 14:05
Hedgehog
Hedgehog is offline
Ja ik weet wel genoeg manieren en shit om het op te lossen met de combinatie php/mysql, maar ik weet zo goed als niks van vb.
Met citaat reageren
Oud 07-05-2003, 21:30
Verwijderd
Het is maar een idee, maar in Access kun je gebruikmaken van de DoCmd.RunSQL

voorbeeldje:

Code:
DoCmd.RunSQL("UPDATE * WHERE username='" & username & "'")
maar zoals gezegd, dat was in Access VB, dus weet niet zeker of dat ook in gewoon VB kan.

succes er mee...


[edit]welke dickhead gaat er eigenlijk in VB programmeren? Voel jij je wel helemaal lekker of zo ?

jk [/edit]
Met citaat reageren
Oud 08-05-2003, 10:09
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
en heel erg bedankt...[over wie er in VB gaat programmeren]
tja... ik ben nog steeds met VB bezig..
Delphi ook wel wat.. maar nog steeds geen enige vorm van C..
maar ik vind het zo wel prima, want ik doe op het moment tog meer met PHP, ASP etc.. (websites dus gewoon eigenlijk)

Maar ik was hiermee begonnen in VB en ik heb niet zoveel zin en tijd om nu iets anders te leren..
dat komt allemaal nog wel.. [hoop ik dan ]

maar goed...
iig die query met "UPDATE ..." die bestaat dus niet met VB & MySQL [MyOLEDB], tenminste.. dat geeft ie aan.. en op internet stond dat ook..
Met citaat reageren
Oud 09-05-2003, 10:42
-= Mr.Whoopee=-
-= Mr.Whoopee=- is offline
Nog ff een keertje proberen...

weet iemand anders een website / forum waar ik het kan vragen?
Met citaat reageren
Oud 09-05-2003, 12:03
Verwijderd
Porbeer het eens op Tweakers.net
Met citaat reageren
Oud 09-05-2003, 15:24
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Citaat:
-= Mr.Whoopee=- schreef op 09-05-2003 @ 11:42:
Nog ff een keertje proberen...

weet iemand anders een website / forum waar ik het kan vragen?
http://gathering.tweakers.net
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 18:20.