dBase Treiber in anderen Sprachen verwenden

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

dBase Treiber in anderen Sprachen verwenden

Beitrag von Benz »

Hi,

Ich habe mir kürzlich mal etwas C# reingezogen. Nach etlicher Recherche im Internet bin ich leider aber auf keinen grünen Zweig gekommen.
Und zwar würde ich gerne die dBase-Datenbanken mit C# verwenden, anstatt eines SQL-Servers.
Das liegt daran, dass die Installation eines SQL-Servers einfach für die größe der Programme, die wir erstellen, viel zu aufgebläht ist.
Mit den dbf-Dateien hat man dagegen eigentlich absolut keine Probleme.

Hat das mal jemand gemacht?
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von georg »

Hallo,


es sollte Treiber geben, weil es auch Clipper-Alternativen gab, die unter C laufen sollten.

Aber, in Sachen SQL-Server, es gibt zum einen SQLite (gewöhnungsbedürftig, nicht unbedingt netzwerkfähig, braucht nur eine DLL, bzw. eine EXE für die Konsole), oder aber MySQL, das man mit der libmysqld.dll als embedded Server nutzen kann, d.h. Du lieferst den entsprechenden Verzeichnisbaum mit, der die notwendigen Dateien enthält, und dann geht das auch.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von brandelh »

ODBC Treiber von Microsoft oder die DAO, ... aber warum nicht gleich eine Access MDB ?
Gruß
Hubert
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von Benz »

Okay, das sind alles gute Argumente und ich denke, das werde ich mir für neue Anwendungen auf jeden Fall überlegen!
Aber ich habe auch noch Anwendungen, die sich nicht so einfach umbauen lassen und mit dBase laufen. Für die gibt es ja sicher eine Möglichkeit.

@Georg: weißt du auch zufällig wie diese Treiber aussehen, bzw. wo man die finden kann und wie man sie benutzen kann?
@brandelh: funktioniert der ODBC tatsächlich auch für dBase? Ich glaube ich habe irgendwie eine falsche Vorstellung davon, was ein Datenbanktreiber überhaupt ist :oops:
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von georg »

Hallo, benz -


versuche es mal mit
dbase driver for c
bei Google. Gibt da schon eine Menge Treffer. Ich habe mich mit dem Thema zu Clipper 5 Zeiten mal beschäftigt, und das ist ziemlich lange her. Ausserdem verstehen C und ich uns nicht besonders gut.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von Benz »

Okay, schade :) dann werde ich mal google nochmal bemühen ;) Trotzdem danke!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von brandelh »

Benz hat geschrieben:Aber ich habe auch noch Anwendungen, die sich nicht so einfach umbauen lassen und mit dBase laufen. Für die gibt es ja sicher eine Möglichkeit.
@brandelh: funktioniert der ODBC tatsächlich auch für dBase? Ich glaube ich habe irgendwie eine falsche Vorstellung davon, was ein Datenbanktreiber überhaupt ist :oops:
Oben sprachst du von C#, das kann auf ODBC zugreifen.
dBase selbst hat eigene Treiber, kann aber genausowenig wie Clipper mit ODBC umgehen.
KEIN gemeinsamer Zugriff von dBase, C# über ODBC und DAO !

Oder meintest du die DBF Dateien, diese kann man verwenden solange man nicht gleichzeitig öffnet.
Die Indexdateien hingegen sind meist sehr verschieden, nach meiner Kenntnis kann nur Xbase++ gemeinsam mit Clipper zugreifen.
Gruß
Hubert
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 483
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 11 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von azzo »

Hallo Benz,
http://www.apollodb.com/
mfg
Otto
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von nightcrawler »

Advantage .NET Data Provider wäre eine Möglichkeit:
http://devzone.advantagedatabase.com/dz ... latform=11
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von Benz »

schonmal danke! Bin grad ein wenig am rumprobieren bei der Apollo-Database-Engine.
@azzo: kennst du dich damit aus?
Wie kann ich denn einen Index damit aufrufen bzw. nach dem Index sortieren und die Daten in der Sortierung anzeigen lassen? Das Anzeigen funktioniert schon, ich gehe einmal durch die Datenbank und schreibe alles in eine Listbox, nur die Sortierung funktioniert noch nicht.
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 483
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 11 Mal

Re: dBase Treiber in anderen Sprachen verwenden

Beitrag von azzo »

Hallo,
ich habe Apollo mit VB6 und VB.NET genutzt.
Leider ist das schon lange her.
Derzeit habe ich kein VS installiert.

Das ist alles was ich im Moment finde. Ich habe diese alten Sachen (2004) nur noch auf Sicherungen.
lg
Otto

Code: Alles auswählen

aus VB6
custarea = sx_Use(App.Path + "\lisch.dbf", "lisch", EXCLUSIVE, SDEFOX)
sx_Zap
sx_Select (sx_WorkArea("lisch"))
sx_Close
------------------

cn_artikel.Open "Provider=SDEOLEDB;Data Source=" + App.Path + "\datakass;Mode=Read;SDE OLEDB: RDE Type=FoxPro"
lRetVal = sx_SysProp(SDE_SP_PUTOBUFFER, 0)
rs_artikel.Open "File=" + "ARTIKEL;Index=TAG:ar_NR", cn_artikel, adOpenStatic, adLockReadOnly, adCmdTable
sx_Select (sx_WorkArea("artikel"))
sx_SetOrder (1)
If sx_Seek((cSuchen)) Then
satznr = sx_RecNo()
rs_artikel.Bookmark = satznr
sx_Select (sx_WorkArea("artikel"))
sx_SetOrder (1)


aus VB.NET
------------------
	
		sx_SetDeleted(True)
		sx_SetCentury(True)
		sx_SetDateFormat(GERMAN)
		





Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
		Dim lRetVal As Object
		Dim cTagesDatei As String
		Dim PfadVorlage As String
		Dim nVKSumme As Double
		
		sx_SetDeleted(True)
		sx_SetCentury(True)
		sx_SetDateFormat(GERMAN)
		
		PfadVorlage = "c:\eWHTouch\datakass\touch"
		
		File1.Path = PfadVorlage
		File1.Refresh()
		
		cTagesDatei = File1.Items(File1.Items.Count - 1)
		
		cn.Open("Provider=SDEOLEDB;Data Source=c:\eWHTouch\datakass\touch;Mode=Read|Write;SDE OLEDB: RDE Type=FoxPro")
	
		lRetVal = sx_SysProp(SDE_SP_PUTOBUFFER, 0)
		
		
		rs.Open("File=" & cTagesDatei, cn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, ADODB.CommandTypeEnum.adCmdTable)
		
		TDBGrid1.DataSource = rs
		sx_GoTop()
		Do While Not sx_Eof()
			nVKSumme = nVKSumme + sx_GetDouble("wert")
			
			sx_Skip(1)
		Loop 
		Label1.Text = CStr(nVKSumme)
		Label3.Text = cTagesDatei
	End Sub
End Class

		
Antworten