Autor Beitrag
Buggi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 09:03 
Hi Leutz,

ich hab 'ne Paradox-Datenbank übernommen und inzwischen feststellen müssen, das die einzelnen Tabellen unterschiedlicher Version sind (Paradox 5.0 bzw. 7) und auch unterschiedliche Sprachtreiber benutzen (Paradox 'intl' bzw. Pdox ANSI Intl).
Kann man die Tabellen auf einen Stand bringen und gibt es eine Empfehlung für einen bestimmten Sprachtreiber?

Dank im voraus,

Burkhard

_________________
Delphi 4, BDE, Paradox
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 09:12 
Glück gehabt
Paradox Intl und Pdox ANSI Intl verwenden so weit ich weiss die gleichen Zeichensatztabellen. Zumindest hab ich dabei noch nie Probleme gehabt.
Als Standardeinstellung hat sich Pdox ANSI Intl bestens bewährt.
Zum konvertieren der Tabellen von 5 => 7 gibts leider keine Möglichkeit. Du kannst nur eine neue Tabelle erstellen und den Inhalt der alten übernehmen (mit Datapump).
Aber eine PDX 7 Tabelle wird nur dann als PDX 7 angezeigt, wenn du deren besondere Merkmale auch verwendest. Im Klartext: Ex gibt eigentlich keinen Grund das zu machen.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Buggi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 10:01 
Dank erstmal für die prompte Antwort LCS,

ich hatte schon einmal ein Problem einer SELECT-Anweisung in einem Beitrag beschrieben und im Zuge dessen die unterschiedlichen Sprachtreiber bemerkt. Vielleicht kannst Du Dir ja ein Reim auf folgendes machen :
select name,gruppe,auftragsnummer, produkt  from  auftrag1 a, Wochenplan1 w,verantwortlicher v   WHERE w.woche=26 AND w.jahr=2002  AND w.auftragsnummer=a.Auftragsnummer  AND a.verantwortlicher=v.lfdnummer AND a.Sollzeit='' order by  gruppe,auftragsnummerBei dieser Anweisung werden die Umlaute in den Spalten "name" und "gruppe" nicht richtig dargestellt.
select name,gruppe,auftragsnummer, produkt  from Wochenplan1 w,verantwortlicher v, auftrag1 a WHERE w.woche=26 AND w.jahr=2002  AND w.auftragsnummer=a.Auftragsnummer  AND a.verantwortlicher=v.lfdnummer AND a.Sollzeit='' order by  gruppe,auftragsnummerBei dieser Anweisung werden allerdings die Umlaute der Spalte "produkt" nicht richtig dargestellt.
Es hatte jemand darauf hingewiesen, das das Problem möglicherweise mit dem Sprachtreiber zusammenhängt.

Hast Du oder irgentein(e) andere(r) 'ne Idee

Gruß Burkhard

_________________
Delphi 4, BDE, Paradox
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 10:09 
Hi
Leider kann ich da jetzt net so genau ersehen, welche Felder aus welcher Tabelle kommen. Stell doch erst mal bei den Spaltenangaben hinter Select ebenfalls die Aliasnamen davor.
Bei der Sprachtreibergeschichte gilt ja, dass sich der sich nur für den DB-Treiber einstellen lässt. Wenn für Paradox Pdox ANSI Intl eingestellt ist, dann gilt das für alle Tabellen. Sind die Tabellen auf unterschiedlichen PC oder mit unterschiedlichen Treibereinstellungen erzeugt worden?

Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 10:21 
Noch ein Nachtrag
Ich hab das grade noch mal getestet. Die beiden Sprachtreiber sind definitiv nicht identisch. Paradox Intl verwendet intern INTL und das ist ASCII.
Du kannst ja mal Spasseshalber die *.DB Dateien mit nem Hexeditor angucken. Der Sprachtreiber INTL oder ANSIINTL steht hinter der Liste der Feldnamen.
So ausm Stehgreif raus würd ich mit nem kleinen Prog die Stringdaten der entsprechenden Tabellen mit OEMToChar auf ANSI-Zeichensatz konvertieren.
Aber vielleicht gibts ja noch ne andere Lösung.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Buggi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 10:41 
Also jetzt nochmal genau :

select v.name, w.gruppe, a.auftragsnummer, a.produkt  from  verantwortlicher v, Wochenplan1 w, auftrag1 a  WHERE w.woche=26 AND w.jahr=2002  AND w.auftragsnummer=a.Auftragsnummer  AND a.verantwortlicher=v.lfdnummer AND a.Sollzeit='' order by  gruppe,auftragsnummerSo werden die Umlaute in derSpalte Produkt nicht richtig dargestellt.
Die Tabellen :
Verantwortlicher : Paradox7 / Pdox Ansi Intl
Wochenplan1 : Paradox7 / Pdox Ansi Intl
Auftrag1 : Paradox5.0 / Paradox 'intl'


Burkhard

_________________
Delphi 4, BDE, Paradox
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 10:46 
Hi
ist mittlerweile verständlich warum das passiert. INTL = DOS. Guck dir mal mein letztes Posting an. Ist wahrscheinlich untergegangen 8)

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Buggi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 11:12 
Dank Dir Lothar,

ich werd wohl die Tabellen neu erstellen und auf gleiche Version und Sprachtreiber auf Ansi-Zeichensatz setzen. Dann bin ich auf der sicheren Seite. Mal schauen wie ich das am besten (schnellsten) mache. Sind nämlich ein paar mehr Tabellen.

Falls Du 'ne Idee hast, dann zier Dich nicht und poste sie :lol:


Burkhard

_________________
Delphi 4, BDE, Paradox
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 11:58 
Ok,
hab ne relativ simple Methode gefunden. Sprachtreiber muss auf Pdox ANSI Intl eingestellt sein.
Mini-prog mit BatchMove, Table1, Table2.
Table1 ist Ursprungstabelle
Table2 wird neue Tabelle
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
with BatchMove do begin
  Mode := batCopy;
  Transliterate := True;
  Source := Table1;
  Destination := Table2;
  Execute;
end;

Ergebniss: neue Tabelle mit gleicher Struktur und gleichem Inhalt, aktuellem Sprachtreiber und konvertierten Strings :D

Hoffe das hilft dir
Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Buggi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 13:53 
Super Sache Lothar,

funzt wohl, hat aber einen entscheidenen Haken: Meine ganzen Indizes sind weg und die Auftragsnummern sind neu numeriert worden.

Falls du dafür 'ne Lösung hast wäre ich dir sehr dankbar, denn ich hab bisher noch nicht mit Batchmove gearbeitet und eigentlich sieht der Ansatz ja schon sehr gut aus.

Gruß Burkhard

_________________
Delphi 4, BDE, Paradox
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 14:12 
Buggi hat folgendes geschrieben:
...denn ich hab bisher noch nicht mit Batchmove gearbeitet


Ich auch nicht :? Hab ich auch nur im Schnellverfahren ausprobiert. Verwendest du für deine Auftragsnummern AutoInc-Felder? Also ausser ein Programm zu schreiben dass alles selbst macht, hab ich auch keine Patentlösung. Zur Not könntest du noch folgendes machen:

Mit DB-Oberfläche Ursprungstabelle öffnen und umstrukturieren
AutoInc ==> Integer

Dann mit Batchmove konvertieren

Mit DB-Oberfläche neue Tabelle öffnen, umstrukturieren
AutoInc wieder einstellen und Indexes neu anlegen

Wenn du zwanzig Tabellen hast, ist das Wocheende gelaufen :mrgreen:
Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Buggi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 13.09.02 14:22 
Ja Auftragsnummer is ein Autoinc-Feld. Und ich hab leider 52 Tabellen aber nicht alle haben ein Autoinc-Feld.
Ich probiers erst mal nach deiner Devise aus.

Dank ersma :wink:

Gruß Burkhard

_________________
Delphi 4, BDE, Paradox