Database Engines [ERLEDIGT]

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

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Database Engines [ERLEDIGT]

Beitrag von Manfred »

Moin,

Xbase++ unterstützt ja verschiedene Database Engines.

DBFDBE
FOXDBE

Meine Frage hier:

1) welche benutzt ihr?
2) warum benutzt ihr die entsprechende
3) bzw. warum benutzt ihr die andere nicht?

Die einzelnen Engines scheinen ja ihre Vor und Nachteile zu haben (wie so immer im Leben), aber welche sind gravierend?
Zuletzt geändert von Manfred am Di, 25. Nov 2008 14:16, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Zur Zeit benutze ich nur die dbfntx. Aus historischen Gründen, die Daten liegen allesamt bereits so vor.

Eine Zeit lang war ich am überlegen auf foxdbe umzusteigen. Jetzt schaue ich mir aber erstmal an, was in der 1.9 die erweiterte dbfntx so alles kann, und ob ich dann doch dabei bleibe.

Ansonsten könnte ich mir noch SQL vorstellen, aber da ich ohne Zusatzprodukte arbeite ist das (noch) etwas kompliziert.

Jan
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Manfred,

wir benutzen FOXCDX und ODBCDBE.

Dafür gibt es verschiedene Gründe.

FOXCDX benutzen wir, da die Daten der Warenwirtschaft, die wir benutzen, in dem Format vorliegen. Unsere Datenbanken haben wir fast alle auf MS SQL umgestellt, da wir ständig Probleme mit den defekten Indexes hatten. Als 2. Grund für die Umstellung waren grössere Datenbestände, die schnell gefiltert werden müssen, was mit SQL schneller geht. Dafür benutzen wir die ODBC-Schnittstelle von Alaska, um erstmal keine andere Software kaufen zu müssen. Hier gibts es aber ab und zu Probleme mit den Memo-Feldern, so dass die felder nicht mal angesprochen werden können (s. Beitrag "ODBC von Alaska" http://www.xbaseforum.de/viewtopic.php?t=401)
Bei kleineren Programmen benutzen wir immer noch FOXCDX, da die Umstellung sich dort wegen wenigen Zugriffen nicht lohnt. Für temporäre Datenbanken (z.B. für die Reports mit R&R) benutzen wir ebenfalls FOXCDX.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Noch was dazu über die Entscheidung MS SQL zu benutzen, bevor andere Fragen kommen.

MS SQL haben wir ausgewählt, weil wir den schon für die anderen Programme nutzen und deswegen keinen neuen Server einsetzen müssen.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

DBFNTX nutzen wir standardmäßig aus Tradition und wegen DBU (von diesem will ich aber weg).
Nachteil die riesigen DBT Dateien bei Memofeldern (512 Byte Blöcke)
DBFCDX brint kleinere Indexdateien, welche auch in einer Datei gehalten werden können. DBU geht noch (ohne Index), aber auch DBT Dateien
FOXCDX kleine Index und Memodatei, bei Indexsuche wird immer unabhängig von Groß-/Kleinschreibung gesucht. DBU nicht brauchbar (bzw. FOX-Clippertreiber nötig)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

andreas hat geschrieben:Noch was dazu über die Entscheidung MS SQL zu benutzen, bevor andere Fragen kommen.
Du brauchst dich doch nicht für deinen SQL-Server entschuldigen :wink:

Für kleinere Projekte ist der sogar mittlerweile kostenlos verfügbar (die Bezeichnun weiß ich nicht genau). Und zum Weitergeben in solchen auch ideal, da MySQL bei kommerziellen Programmen nicht kostenlos mitgegeben werden kann.

Ich habe bei meinem Problem mit MySQL bessere Ergebnisse erziehlt, da ich dem ODBC Treiber hier 100 Datensätze auf einmal zum Append geben kann, was bei MS SQL so nicht funktioniert hat (vielleicht hätte ich die Syntax ändern müssen). Grundsätzlich kann der MS SQL Server aber mehr, ob man es braucht muss jeder selbst wissen.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi an alle die bisher geschrieben haben,

bringe ich hier was durcheinander, oder habe ich falsch gefragt?

Es ging mir um die DBEs direkt.

So wie ich es sehe, hat der FOX Treiber etliche Feldtypen mehr und er kann neuerdings auch Nullfelder verhindern.

Ich dachte eigentlich direkt an die Datenbanktreiber und nicht die für die Indexdateien. Oder liege ich hier mit meiner Denke mal wieder daneben?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:bringe ich hier was durcheinander, oder habe ich falsch gefragt? Es ging mir um die DBEs direkt.
So wie ich es sehe, hat der FOX Treiber etliche Feldtypen mehr und er kann neuerdings auch Nullfelder verhindern.
Hallo Manfred,

also laut 'Grundlagen zu DatabaseEngines' sind die alle Komponenten (DATA, ORDER ...) DBEs. Wenn man beides zusammen nutzen will (was meist der Fall ist) werden diese zusammengesetzt. Hierbei ist zwar ein wilder MIX möglich, aber ich denke man sollte sich auf die Grundformen beschränken.

Meine Antwort berücksichtigte die gemischten Versionen, natürlich trifft alles was die DBF und Memodateien beschreibt auf die DATA Komponente zu.

NULL Felder verhindern kann eine DBE nicht (in ein Feld wurde noch keine Info eingetragen !). Bisher kann man allerdings nicht unterscheiden, ob ein Eintrag LEER gesetzt wurde, oder ob er NOCH NIE gesetzt wurde.
Mit der neuen Möglichkeit kann man auf NULL (oder NIL ?) abfragen ob das Feld nie gesetzt war. Der Nachteil ist, dass ein NULL oder NIL in einem Browser wahrscheinlich einen Fehler verursacht.

Je nach Anwendung muss man entscheiden was sinnvoller ist !
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:So wie ich es sehe, hat der FOX Treiber etliche Feldtypen mehr
Wenn man binary Datenspeichern will, oder viele Zahlen hat (weniger Bytes nötig , egal wieviel Stellen) ist der FOX besser, aber Vorsicht, Xbase unterstützt diese Werte nur in Dateien, eventuell muss man Umwandel oder mit Ungenauigkeiten leben.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

naja, sagen wir mal so, was mir ins Auge gefallen ist, ist die neue Möglichkeit ein Feld zu haben, welches automatisch hochzählt. Das erspart natürlich die Arbeit das getrennt zu machen und dazu eine "Historie" zu führen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:was mir ins Auge gefallen ist, ist die neue Möglichkeit ein Feld zu haben, welches automatisch hochzählt.
genau, das ist die beste Erweiterung, die ich gebrauchen kann, sicherere automatische Nummernhochzählung war im LAN immer ein Problem.
Ich hoffe dass es auch sauber funktioniert ... muss ich noch Testen.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

Ach ja und natürlich der Wegfall der Begrenzung der Feldanzahl auf 256.
Was ich mittelfristig brauchen könnte, wären DBF Dateien über 2 GB, das soll aber erst in der nächsten Version kommen.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Siehst Du, und da kommen wir zu meinem Hauptanliegen:

Bringt es irgendwelche Probleme/Nachteil/Vorteile, die eine ander andere Engine zu nutzen? Es gibt keinen Mischbetrieb und das Xbase Programm ist das einizge, was auf die DB zugreift.

Dieses Inkrementieren, finde ich eine echt schicke Sache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:Siehst Du, und da kommen wir zu meinem Hauptanliegen:
Bringt es irgendwelche Probleme/Nachteil/Vorteile, die eine ander andere Engine zu nutzen? Es gibt keinen Mischbetrieb und das Xbase Programm ist das einizge, was auf die DB zugreift.
Dieses Inkrementieren, finde ich eine echt schicke Sache.
Wenn du Inkrementieren willst, und das bietet zur Zeit nur die FOX, dann brauchst du die FOXCDX. Ich meine gehört zu haben, dass diese in den USA mehr benutzt wird als die DBFNTX, kleinere Memofelder, mehr Datentypen kleinere Indexdateien und dazu noch genau eine (Name wie DBF möglich) ...

Außer dass DBU sie nicht ohne weiteres öffnen kann, kenne ich keine Probleme mit der FOXCDX Verbindung.
Doch, man kann bei der Indexsuche nicht zwischen z.B. Heinz und HEINZ unterscheiden, aber ich suche sowieso immer UPPER(NAME), somit ist das eher ein Vorteil (keine UDF im Indexbegriff). 8)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Im Moment benutze ich die DBFDBE und die CDXDBE dazu.

Ich habe den Unterschied zwischen CDX und der FOX nicht verstanden. Sind die nicht ähnlich, oder gleich?

PS: Ich sehe gerade, ich glaube das ist ein und dieselbe!?

Jetzt lese ich gerade noch: wird von der NTXDEB und CDXDBE ignoriert. Wird beim Indexaufbau in der Anleitung auch schon direkt für SQL miterklärt, oder welcher Index kann dann z.B. EVAL oder EVERY?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:Ich habe den Unterschied zwischen CDX und der FOX nicht verstanden. Sind die nicht ähnlich, oder gleich?
FOXDBE, DBFDBE sind beide DATA-Komponenten (verwalten also die DBF Datei, welche in einem Headereintrag den Typ genau speichert.)
den Rest lass ich jetzt mal weg (SDF ...)

CDXDBE, NTXDBE sind beide ORDER-Komponenten (verwalten also die Indexdateien CDX oder NTX.)

Wenn man KEINE Indexe braucht, kann man auch direkt eine Datei mit der DATA-Komponente verwalten VIA FOXDBE ist gültig, solange diese in der DBESYS.PRG nicht versteckt wird (wird sie automatisch solange man es nicht ändert). Ob es sinn macht ist eine andere Frage, wer kommt schon ohne Indexe aus ...

DATA und ORDER könnte man nun frei mischen, aber nur 3 Varianten werden genutzt:

DBF+NTX = DBFNTX (Standard wenn man keine DBESYS.PRG hat)
DBF+CDX = DBFCDX (Nachteil DBT-Datei wenn Memo nötig ...)
FOX+CDX = FOXCDX (ich kenne eigentlich nur Vorteile, wenn man DBU nicht benutzt)

Lies bitte die Grundlagen der Database-Engines in der Hilfe, es lohnt sich.
Ebenso die Grundlagen der Xbaseparts bei GUI, hier muss man sicher sein.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Das was Du oben erklärst, ist mir schon klar. Die Mischerei habe ich schon verstanden. Das verwirrende ist jetzt nur, das es doch nur 2 Indexmöglichkeiten gibt. Warum werden dann Möglichkeiten erklärt, die die gar nicht können?

Naja, ich werde nochmal die Anleitung überfliegen, mal sehen was hängen bleibt...
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Das verwirrende ist jetzt nur, das es doch nur 2 Indexmöglichkeiten gibt. Warum werden dann Möglichkeiten erklärt, die die gar nicht können?
Hallo Manfred,

die Anmerkung in den Hilfen, dass etwas ignoriert wird, bezieht sich auf einige PARAMETER bzw. Abfragemöglichkeiten, nicht auf die Kombination der DATA und ORDER Komponenten untereinander.

Z.B. wird WHILE nicht unterstützt, sowie einige Neuerungen von Clipper 5.2x
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

jaja,

aber es gibt doch nur CDX und NTX!? Und wenn die beide etwas nicht können, warum wird dann überhaupt noch darüber gesprochen, oder waren das Dinge, die Clipper 5.3 konnte? Ich habe mich damit nicht mehr beschäftigt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

die letzte Clipper 5.x und 5.3 konnten mehr als Xbase jetzt kann.
Deshalb sind die Parameter angegeben, wahrscheinlich soll(te) irgendwann die Unterstützung folgen. Sie wurden ja in 1.90 aufgebohrt, eventuell kommt ja noch mehr.
Wirklich wichtige Sachen fehlen aber nicht.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

bei unserem Treffen gestern in Osnabrück fiel noch einmal die Sprache auf FoxDBF und FOXCDX.

Das schöne an der Foxpro DB ist ja, dass ich in der Memodatei auch Bilder abspeichern kann. Hat da jemand schon Erfahrungen mit gesammelt? Es ginge um kleine JPG, die pro Satz mit abgelegt werden sollten.

PS: Ich habe das doch richtig verstanden, FOXDBE kann mit CDXDBE verkoppelt werden!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: Das schöne an der Foxpro DB ist ja, dass ich in der Memodatei auch Bilder abspeichern kann. Hat da jemand schon Erfahrungen mit gesammelt? Es ginge um kleine JPG, die pro Satz mit abgelegt werden sollten.
Ja das geht mit FOXDBE "Memo" Type "V" (nicht "M") !

ABER : vorsicht mit "o:datalink", ich hatte am Anfang das Problem
das er "ständig" auch das "Foto" zurückschrieb und die *.FPT dadurch
massiv anwuchs.
Manfred hat geschrieben: Ich habe das doch richtig verstanden, FOXDBE kann mit CDXDBE verkoppelt werden!?
ja richtig :

Code: Alles auswählen

  /*
   * Anpassung der Sortierfolge
   */
   SET COLLATION TO GERMAN
  /*
   *   DBF und NTX Database-Engine werden "hidden" geladen
   *   und zu der neuen abstrakten DBFNTX Database-Engine verbunden.
   */
   IF ! DbeLoad( "DBFDBE", .T.)
      Alert( "Database-Engine DBFDBE nicht geladen" , {"OK"} )
   ENDIF
   IF ! DbeLoad( "NTXDBE", .T.)
      Alert( "Database-Engine NTXDBE nicht geladen" , {"OK"} )
   ENDIF
   IF ! DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
      Alert( "DBFNTX Database-Engine;konnte nicht erzeugt werden" , {"OK"} )
   ENDIF
  /*
       Hier DbeInfo() für NTX Datein
  */
  * DbeInfo( COMPONENT_DATA  , xxxDBE_LOCKMODE, ...)
  * DbeInfo( COMPONENT_ORDER, xxxDBE_LOCKxxx   , ...)

  /*
   *   Das gleiche mit FOX und CDX Database-Engine durchführen
   */
   IF ! DbeLoad( "FOXDBE", .T.)
      Alert( "Database-Engine FOXDBE nicht geladen" , {"OK"} )
   ENDIF
   IF ! DbeLoad( "CDXDBE",.T.)
      Alert( "Database-Engine CDXDBE nicht geladen" , {"OK"} )
   ENDIF
   IF ! DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
      Alert( "FOXCDX Database-Engine;konnte nicht erzeugt werden" , {"OK"} )
   ENDIF
  /*
       Hier DbeInfo() für CDX Datein
  */
  * DbeInfo( COMPONENT_DATA  , xxxDBE_LOCKMODE, ...)
  * DbeInfo( COMPONENT_ORDER, xxxDBE_LOCKxxx   , ...)
 
   DbeSetDefault( "FOXCDX" )
und zum "create" :

Code: Alles auswählen

STATIC PROCEDURE C_Wintip()
LOCAL aSTRU := { ;
               { "WINOS"  , "C",10,0}, ;
               { "WINNR"  , "N",10,0}, ;
               { "WINTIP" , "C",40,0}, ;
               { "WINPRG" , "C",30,0}, ;
               { "WINKAT" , "C",30,0}, ;
               { "WINHEFT", "C",30,0}, ;
               { "WINDATE", "D", 8,0}, ;
               { "WINMEMO", "M",10,0}, ;       // "normales" Memo
               { "WINFOTO", "V", 4,0}  }        // "binary" Memo

DbCreate( "XPPWTIPS", aStru, "FOXCDX" )
Das ich aber nur die "reinen" DBE DATA Komponente. Sicherlich willst
du auch Index Datein haben und musst dch deshalb "vorher" entscheiden
welchen "Locking Type" du haben will und mit "DbeInfo() konfigurieren":

Code: Alles auswählen

DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_2X ) 

oder 

DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_CLIPPER ) 

oder 

DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_VISUAL )
"default" ist zwar "FOXDBE_LOCKMODE_AUTO", aber ich hab dann nicht
immer die gewünschte "Compatibilität"

willst du selber "FoxPro v2.x" DBF erzeugen brauchst du auch noch :

Code: Alles auswählen

DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .T. ) 
wenn du dann alle deine "DbeInfo(COMPONENT_DATA" zusammen hast,
kommen die Index Datein mit "DbeInfo(COMPONENT_ORDER", aber das
ist ein anderes Thema.

gruss by OHR
Jimmy
Antworten