[C++] ADO reconnect na disconnect

Pagina: 1
Acties:

  • boobobob
  • Registratie: Oktober 2004
  • Laatst online: 31-08-2021

boobobob

Dancing Goaly

Topicstarter
Ik heb een programma met een sql-database.
De databaseverbinding heb ik via het ADO-component.
Alles werkt perfect zolang de netwerkverbinding niet verbroken wordt.
Is dit wel het geval (bv losse netwerkkabel) dan kan ik niet opnieuw verbinden zonder het programma opnieuw op te starten.

Is er een mogelijkheid om de verbinding opnieuw tot stand te brengen zodra er weer een netwerkverbinding is?

de foutmelding die ik nu krijg:
code:
1
2
3
Project Project1.exe raised exception class EDatabaseError with message
'[Microsoft][ODBS SQL Server Driver][DBNETLIB]ConnectionRead (recv())'. 
Process stopped. Use Step and Run to continue.


Alvast bedankt

Verwijderd

Natuurlijk is het niet zo gek dat er een fout optreedt als je een verbinding onaangekondigd verbreekt. Je kan natuurlijk met goede error handling dit oplossen door deze exceptie af te vangen en in een loop proberen een nieuwe connectie te maken. Je RecordSet is echter naar de filistijnen en daar zal je niets aan kunnen doen.

Er is een mogelijkheid in ADO om bewust de connectie van een RecordSet te verbreken en later weer te verbinden, nl. mbv disconnected RecordSets. Zie http://www.4guysfromrolla.com/webtech/080101-1.shtml voor wat meer informatie. Ook via [google=ADO disconnected recordset] is er zat informatie te vinden. Of het echter mogelijk is om de connectie van een disconnected recordset die niet expliciet is gesloten (bijv. door kabelstoring is onderbroken) opnieuw te verbinden vraag ik me sterk af.

HTH :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 30 augustus 2005 @ 16:50:
Of het echter mogelijk is om de connectie van een disconnected recordset die niet expliciet is gesloten (bijv. door kabelstoring is onderbroken) opnieuw te verbinden vraag ik me sterk af.

HTH :)
Volgens mij wel door de activeconnection opnieuw te setten :? Maar zeker ben ik niet... Volgens mij kon je zo (onder andere) een adXML persisted recordset weer in de DB terug gooien. Maar dat is vast te vinden ;)

[ Voor 31% gewijzigd door RobIII op 30-08-2005 17:54 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • boobobob
  • Registratie: Oktober 2004
  • Laatst online: 31-08-2021

boobobob

Dancing Goaly

Topicstarter
Bedankt, ik zal daar eers verder zoeken.