Wat ik probeer te doen:
Ik ben bezig met een programma (VB6) dat wat data uit een FoxPro database moet trekken. Die FoxPro database is van AccountView en an sich werkt alles prima... maar...
Ik gebruik een ADODB Connection Object om te verbinden met de FoxPro database. Dit is mijn connectiestring in de simpelste vorm:
Nu kan ik met een query als "Select * from article" alle artikelen mooi ophalen. Het probleem is echter dat het programma als een soort service moet gaan draaien en dus om de zoveel tijd wat data uit Accountview moet trekken. Nu is bovenstaande query maar een voorbeeld, het gaat om het idee.
Mooi. Alles werkt dus. * RobIII proggelt vrolijk verder... Totdat ik opeens Accountview laat open staan en dan mijn programma weer run. *knal*...
Wat krijgen we nou? 
Foutcode: 80040e37 (of -2147217865 decimaal). Kan adm00rpd.dbc niet openen. Het lijkt me dus dat ik inderdaad niet erg netjes ben en de database waarschijnlijk Exclusief probeer te openen.
Sorry! Dat gaan we fixen!
Wat heb ik gedaan?
• Ik heb geprobeerd de parameter "Exclusive=No" toe te voegen -> Zelfde foutmelding.
• "Mode=Read" en zelfs "Mode=Read|Share Deny None" toegevoegd -> Zelfde foutmelding.
• Geprobeerd "BackgroundFetch=No" toe te voegen (riep iemand op Google) -> Zelfde foutmelding
• Een combinatie van die drie, waardoor ik uit kwam op:
Ik heb al vanalles gegoogled en bij die zoektocht kwam ik uit op Q175801 en Q197463 maar daar kan ik ook niks zinnigs in vinden, evenals op Google (Groups) zelf. Ik gebruik overigens de OLE DB Provider voor FoxPro.
Kort samengevat
Alles werkt prima, zolang Accountview niet geopend is. Open ik Accountview en ik run dan mijn programma dan krijg ik die foutmelding. Accountview zélf kan echter wél (op meerdere stations) tegelijkertijd met de database werken, dus het ligt aan mijn manier van openen van de connectie. Het is ook geen (NTFS) rechten probleem wat ik overal lees, want het werkt wél als ik Accountview sluit.
Wat doe ik verkeerd? Aan een read-only view heb ik genoeg, ik wil alleen een soort "export" maken van bepaalde data op bepaalde tijden, waarbij mijn programma wat dingetjes toevoegt aan de gegevens die uit Accountview (moeten) komen.
Ik ben bezig met een programma (VB6) dat wat data uit een FoxPro database moet trekken. Die FoxPro database is van AccountView en an sich werkt alles prima... maar...
Ik gebruik een ADODB Connection Object om te verbinden met de FoxPro database. Dit is mijn connectiestring in de simpelste vorm:
code:
1
| Provider=VFPOLEDB.1;Data Source=C:\Bla;Mode=Read;Password="""";Collating Sequence=MACHINE; |
Nu kan ik met een query als "Select * from article" alle artikelen mooi ophalen. Het probleem is echter dat het programma als een soort service moet gaan draaien en dus om de zoveel tijd wat data uit Accountview moet trekken. Nu is bovenstaande query maar een voorbeeld, het gaat om het idee.
Mooi. Alles werkt dus. * RobIII proggelt vrolijk verder... Totdat ik opeens Accountview laat open staan en dan mijn programma weer run. *knal*...
Foutcode: 80040e37 (of -2147217865 decimaal). Kan adm00rpd.dbc niet openen. Het lijkt me dus dat ik inderdaad niet erg netjes ben en de database waarschijnlijk Exclusief probeer te openen.
Wat heb ik gedaan?
• Ik heb geprobeerd de parameter "Exclusive=No" toe te voegen -> Zelfde foutmelding.
• "Mode=Read" en zelfs "Mode=Read|Share Deny None" toegevoegd -> Zelfde foutmelding.
• Geprobeerd "BackgroundFetch=No" toe te voegen (riep iemand op Google) -> Zelfde foutmelding
• Een combinatie van die drie, waardoor ik uit kwam op:
code:
1
| Provider=VFPOLEDB.1;Data Source=C:\Bla;BackgroundFetch=No;Mode=Read|Share Deny None;Exclusive=No;Password="""";Collating Sequence=MACHINE; |
Ik heb al vanalles gegoogled en bij die zoektocht kwam ik uit op Q175801 en Q197463 maar daar kan ik ook niks zinnigs in vinden, evenals op Google (Groups) zelf. Ik gebruik overigens de OLE DB Provider voor FoxPro.
Kort samengevat
Alles werkt prima, zolang Accountview niet geopend is. Open ik Accountview en ik run dan mijn programma dan krijg ik die foutmelding. Accountview zélf kan echter wél (op meerdere stations) tegelijkertijd met de database werken, dus het ligt aan mijn manier van openen van de connectie. Het is ook geen (NTFS) rechten probleem wat ik overal lees, want het werkt wél als ik Accountview sluit.
Wat doe ik verkeerd? Aan een read-only view heb ik genoeg, ik wil alleen een soort "export" maken van bepaalde data op bepaalde tijden, waarbij mijn programma wat dingetjes toevoegt aan de gegevens die uit Accountview (moeten) komen.
offtopic:
Ik weet dat Accountview een COM object beschikbaar heeft, en daar ben ik zelfs een dag voor op "cursus" geweest (waste of money, maar goed...) en dat ik daarmee ook de DB kan benaderen. Maar a) krijg ik dan niet de gewenste gegevens en b) is dat niet zo rap. Het is overigens verder prima toegestaan om Accountview via een ODBC te benaderen, dus ik vraag niks illegaals ofzo. Ik ga dit, mocht ik er hier niet uit komen met de support afdeling opnemen, maar die zijn a) nu niet open en b) nogal traag met reageren...
Ik weet dat Accountview een COM object beschikbaar heeft, en daar ben ik zelfs een dag voor op "cursus" geweest (waste of money, maar goed...) en dat ik daarmee ook de DB kan benaderen. Maar a) krijg ik dan niet de gewenste gegevens en b) is dat niet zo rap. Het is overigens verder prima toegestaan om Accountview via een ODBC te benaderen, dus ik vraag niks illegaals ofzo. Ik ga dit, mocht ik er hier niet uit komen met de support afdeling opnemen, maar die zijn a) nu niet open en b) nogal traag met reageren...
[ Voor 4% gewijzigd door RobIII op 20-04-2005 21:35 ]
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
