[VB + ADO]

Pagina: 1
Acties:

  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
Ik zit met een probleempje!
Ik gebruik een ADO contol en ben daar mee via ODBC geconnect met mij database [mySQL]

Het probleem treed zich op wanneer ik een INSER query uitvoer!
Dan krijg ik de ADO-medling dat dit niet uitgevoerd kan worden als het
object gesloten is! als ik dan op ok klik voert hij toch de Query perfect uit!
Aangezien het een ADO-melding is kun je deze niet uitschakelen met
On error resume next.

adoUsers.RecordSource = "INSERT INTO tblusers ( ID,IP,Nick,State ) _
VALUES('','1','Testdb2','0')"
adoUsers.Refresh --> bij dit commando komt de ADO-melding

PS: Als ik een gewone SELECT Query uitvoer krijg ik geen meldiingen

Greetz

If it jams force it, if it breaks it needed fixing anyway!!


  • whoami
  • Registratie: December 2000
  • Nu online
Je bent met een ADO control geconnecteerd via ODBC met uw databank??

https://fgheysels.github.io/


  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
via dns ! met de connectie is niets mis volgens mij! want Select query's runt hij perfect het is over die INSERT dat hij moeilijk doet

If it jams force it, if it breaks it needed fixing anyway!!


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Is het niet handiger om de AddNew method te gebruiken om een record toe te voegen?

| Toen / Nu


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

zover ik weet kan je ook geen Insert gebruiken. Ik heb het onlangs ook geprobeerd. Ditto met Update volgens mij.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Ik ken ADO niet, maar als ik RecordSource zie staan lijkt het mij dat je daar alleen dingen mee op kunt vragen... Maar ik kan er natuurlijk helemaal naast zitten..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Bij MSDN staat dat je records kan toevoegen via SQL statements, maar het hangt wel af van je dataprovider:
ADO also allows using commands as alternatives to its built-in properties and methods for editing data. Depending upon your provider, all operations mentioned in this chapter could also be accomplished by passing commands to your data source. For example, SQL UPDATE statements can be used to modify data without using the Value property of a Field. SQL INSERT statements can be used to add new records to a data source, rather than the ADO method AddNew. For more information about SQL or the data-manipulation language of your provider, see the documentation of your data source.
Je kan zoiets doen:
Visual Basic:
1
2
3
4
5
6
7
8
9
    Dim adoRec As New ADODB.Recordset
    With adoRec
        .ActiveConnection = "ConnectionString"
        .Open "SELECT * FROM MyTable"
        .AddNew
        !Field1 = 1
        !Field2 = "Abc"
        .Update
    End With

Je moet wel een open recordset hebben om een record te kunnen toevoegen. Daarom zit die select er voor, niet een erg nette oplossing eigenlijk. Daar moet ik nog eens wat anders op verzinnen.

Zo schijnt het ook te kunnen:
Visual Basic:
1
2
3
4
5
6
7
8
9
    strConnection = "Provider=..."
    Set adoRec = New ADODB.Recordset
    With adoRec
        .Open "MyTable", strConnection, adOpenForwardOnly, adLockOptimistic, adCmdTable
        .AddNew
        !Field1 = 1
        !Field2 = "Abc"
        .Update
    End With

| Toen / Nu


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

SuperRembo schreef op 25 september 2002 @ 22:24:
Je moet wel een open recordset hebben om een record te kunnen toevoegen. Daarom zit die select er voor, niet een erg nette oplossing eigenlijk. Daar moet ik nog eens wat anders op verzinnen.
select * from tabel where keyveld=bestaat_niet

zorgen dus dat je geen gegevens vind, dat heb je wel een verbinding, en je hebt een lege recordset waarbij je wel een addnew kunt doen.

Exact expert nodig?


Verwijderd

Update hoeft volgens mij niet bij insert???. Insert wijzigt je recordset direct. (openen, updaten en sluiten)
could be wrong of course

  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
tnx voor de comment!

ik heb ook onder tussen een andere oplossing gevonden
Execute methode !!

Maar toch bedankt
Greetz

If it jams force it, if it breaks it needed fixing anyway!!

Pagina: 1