[VB.NET] Hoe DBF dbase met NTX indexfiles gebruiken?

Pagina: 1
Acties:
  • 141 views sinds 30-01-2008
  • Reageer

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 04-04 21:15
Ik moet voor mijn stage een VB.Net applicatie maken welke gebruik maakt van een bestaande database. Deze database bestaat uit DBF bestanden met NTX index bestanden.

Om ze te kunnen openen en wijzigen moet ik een werkende connectie kunnen maken met deze files, echter kan ik alleen een connectie maken met een DBF file. Ik kan deze daarna wel gebruiken en bewerken, echter om een goede compatibiliteit te garanderen met een andere applicatie zal ik ook de NTX index bestanden moeten openen en bewerken elke keer als een record toevoeg, wijzig of verwijder aan een DBF bestand. De compatibiliteit moet gegarandeerd worden met een programma dat geschreven is in Alaska XBase++. Het moet ook mogelijk zijn om de database met 2 programma's tegelijk te openen. Met VB.Net en met XBase++

Nu ben ik al geruime tijd op google op zoek naar een oplossing, echter bruikbare oplossingen kan ik niet vinden. Er zijn wel oplossingen op de markt, maar deze dienen gekocht te worden. 2 voorbeelden zijn Apollo .Net en Apollo OLEDB. Al dan niet beide aangevuld met de gratis Apollo SQL
Wel heb ik de NTX file specificatie gevonden, echter kan ik hier ook vrij weinig mee.
Zoeken op GoT levert me behalve dit topic geen andere relevante info op.

Weet iemand hoe ik in Visual Studio .Net de mogelijkheid heb om een DBF/NTX database te openen en te gebruiken? En zo ja.... hoe?

Wanna play?


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:33

Creepy

Tactical Espionage Splatterer

Als het goed is dan is het openen van de DBF voldoende. De driver die je gebruikt dient zelf de indexen e.d. bij te werken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • lier
  • Registratie: Januari 2004
  • Laatst online: 15:59

lier

MikroTik nerd

Als je deze database niet meer voor andere applicaties gebruikt kan je misschien (beter) overwegen om de data te converteren en de DBF's weg gooien.

Dan kan je een "echte" (relationele) database toepassen.

Eerst het probleem, dan de oplossing


  • F-Tim
  • Registratie: November 2003
  • Laatst online: 04-04 21:15
Creepy schreef op woensdag 15 februari 2006 @ 14:23:
Als het goed is dan is het openen van de DBF voldoende. De driver die je gebruikt dient zelf de indexen e.d. bij te werken.
Ik gebruik de volgende connection string:
code:
1
2
3
4
5
6
7
Private Function OpenDBFConn()
Dim Conn : Conn = CreateObject("ADODB.Connection")
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                  "Data Source=" & Path & ";" & _
                  "Extended Properties=""DBASE IV;"";")
OpenDBFConn = Conn
End Function

Dan maakt de driver van de Jet engine geen gebruik van de NTX bestanden. Enkel en alleen van de DBF bestanden, en als gevolg daarvan past hij dus ook nooit de indexen in de NTX aan. Als ik wist hoe ik de indexfiles apart kon openen en bijwerken conform maatregelen zou ik handmatig alles kunnen oplossen (dmv. een 2de connectionstring naar de NTX bestanden en dan daar apart alles regelen). Maar automatisch regelt de Jet engine dit niet voor me helaas. Zodoende ben ik ook op zoek naar een wel werkende oplossing. Iig bedankt
lier schreef op woensdag 15 februari 2006 @ 14:32:
Als je deze database niet meer voor andere applicaties gebruikt kan je misschien (beter) overwegen om de data te converteren en de DBF's weg gooien.

Dan kan je een "echte" (relationele) database toepassen.
De database dient dus nog door nog een applicatie gebruikt te worden, zoals ik reeds in de TS vermeld had. Anders was ik deze weg al eerder ingeslagen ;) Jij ook bedankt

Wanna play?


  • lier
  • Registratie: Januari 2004
  • Laatst online: 15:59

lier

MikroTik nerd

Ik was (inderdaad) iets te snel/had je TS niet goed gelezen.

Misschien kan je op zoek naar een tool waarmee je een DBF file kan herindexeren ?
Maar het blijft behelpen en de enige oplossing is toch om een broker laag te plaatsen
die hiervoor zorgt. Is hiervoor betalen een probleem ? $250 Lijkt mij voor de meeste bedrijven geen probleem ?

[ Voor 5% gewijzigd door lier op 15-02-2006 15:18 ]

Eerst het probleem, dan de oplossing


  • igmar
  • Registratie: April 2000
  • Laatst online: 27-03 10:55

igmar

ISO20022

F-Tim schreef op woensdag 15 februari 2006 @ 14:02:
Weet iemand hoe ik in Visual Studio .Net de mogelijkheid heb om een DBF/NTX database te openen en te gebruiken? En zo ja.... hoe?
Het probleem zijn je (huidige) ODBC drivers, die ondersteunen dat gewoonweg niet. Op de commercieele oplossingen na is er AFAIK geen oplossing.

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 04-04 21:15
lier schreef op woensdag 15 februari 2006 @ 15:17:
Ik was (inderdaad) iets te snel/had je TS niet goed gelezen.

Misschien kan je op zoek naar een tool waarmee je een DBF file kan herindexeren ?
Maar het blijft behelpen en de enige oplossing is toch om een broker laag te plaatsen
die hiervoor zorgt. Is hiervoor betalen een probleem ? $250 Lijkt mij voor de meeste bedrijven geen probleem ?
Ik ben de rest van de middag nog op zoek geweest naar eventuele tools waarmee ik een NTX kon aanmaken aan de hand van een DBF. Maar ook daar was behalve commerciele oplossingen niets voor te vinden. Conclusie... NTX bestanden zijn niet vrij toegankelijk in .Net 8) Tenzij je natuurlijk zelf een wrapper schrijft die het bestand echt bitwise kan lezen/schrijven.
Bovendien heb ik het nog gehad met de baas en enkele collega's erover, elke keer een NTX genereren als ik een record toevoeg, wijzig of verwijder in de DBF zakt de hele applicatie performancewise in elkaar.

Gevolg, we gaan dus toch voor een commerciele oplossing. Er bestaat een 30 dagen evaluatieversie van Apollo .NET, en m'n baas zei "Bewijs maar dat het daarmee werkt, als het werkt koop ik het" Ik heb dus nog 29 dagen over om te zorgen dat het werkt. Al moet ik zeggen dat m'n eerste reactie érg positief is. Kreeg vanmiddag een complete database in 10 minuten tijd in een Listbox gepropt, enkel en alleen om het component te proberen. De rest van de tijd zal ik me op een goed werkend exemplaar richten. In ieder geval thanx voor het meedenken lier :)
igmar schreef op woensdag 15 februari 2006 @ 15:47:
[...]


Het probleem zijn je (huidige) ODBC drivers, die ondersteunen dat gewoonweg niet. Op de commercieele oplossingen na is er AFAIK geen oplossing.
Dat is iets dat ik helemaal niet wist. Goed om te weten dat we dus toch voor de goede oplossing gegaan zijn :) Thanx

Wanna play?

Pagina: 1