Autor Beitrag
p!nhead
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Mi 17.08.05 10:24 
hallöchen :)

folgendes:

ich habe hier eine relativ grosses datenbankprogramm, das von paradox auf ms sql server geaendert werden soll. die tabellen und felder auf dem sql server habe ich alle vom namen her gleich gelassen, damit ich den wenigst moeglichen aufwand damit habe.

mein problem ist, ich weiss nicht wie ich mit den standard "BDE" komponenten eine connection auf den sql server hinbekomme.

da ich dies nicht weiss, hab ich einfach mal versucht die ganzen tables zu loeschen und stattdessen ADOTables (bei denen ich ja problemlos die connection zum sql server eingeben kann) zu nehmen. nun stellte sich aber heraus das ADOTables leider nicht solche befehle wie "Findkey" oder "FindNearest" haben, welche in dem programm aeusserst haeufig verwendet werden.

hat jemand vielleicht eine möglichst simple lösung für mich? :)
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mi 17.08.05 11:25 
die umstellung auf eine völlig andere db bringt im allgemeinen IMMER sehr viel arbeit mit sich!

und mit standart bde kompos auf ne mssql db zuzugreifen, is imho auch net wirklich möglich!

bei dir die komponenten ein, die darauf zugreifen können und pass dein programm an! da wirst du nicht drum herum kommen!

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
p!nhead Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Mi 17.08.05 12:34 
hm.. bist du dir sicher das es nicht anders geht?

ich dachte daran der betreffenden datenbank auf dem sql server einen alias zu verpassen, den ich dann den bdekomponenten als DataBaseName verwende... allerdings weiss ich noch nicht wie ich der db auf dem sql server den alias verpasse :/
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Do 18.08.05 11:01 
user profile iconMatthias-K hat folgendes geschrieben:
die umstellung auf eine völlig andere db bringt im allgemeinen IMMER sehr viel arbeit mit sich!


Nicht wenn man Zeos Componenten nimmt! Im allgemeinen muß man da bei der ZConnection ein anderes Protocol einstellen
und schon funzt es denk ich mal!

Ich habe eine Function geschrieben die mir je nach Protocol
die öffnen und schließen Zeichen zurückgibt!

Also z.B. bei MySQL SELECT * FROM `TABELLE` WHERE `XY ID` = 12
und bei Oracle SELECT * FROM [TABELLE] WHERE [XY ID] = 12

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function GetExtraCharacters(AProtocol : String; AOpen : Boolean) : String;
begin
  if(Pos('mysql', AProtocol) > 0)then
  begin
  Result := '`';
  end
  else
  if(Pos('oracle', AProtocol) > 0)then
  begin
  if(AOpen)then
  Result := '['
  else
  Result := ']';  
  end;
end;


ich weiß nicht wie diese Zeichen bei anderen DB's sind kann vieleicht einer die Liste ergänzen?
Dille
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 18.08.05 14:06 
Titel: paradox zu SQL Server
hi folks,

ich habe ein ähnliches problem.

vor einiger zeit schrieb ich ein nummernsystem progy, welches meine daten organisiert. läuft immer noch prächtig. es hat eine DB mit 4 PARADOX tabellen die ich bequem über die BDE laufen lasse. mit der zeit sind die tabellen ganz schön fett geworden.
letzte woche dachte ich mir, ich könnte diese DB doch von dem selben programm mehrmals, von unterschiedlichen rechnern, anprechen. na klar, funktioniert nicht, weil immer nur ein kanal für die BDE offen ist, aber aus bequemlichkeit habe ich's trotzdem versucht.

nun war mir klar, eine server/client geschichte muss her. da ich schon SQL server auf meinem zukünftigen server installiert hatte, habe ich mir gleich ne test tabelle gebastelt und eine ADO verbindung direct über die ODBC geschaffen. prima dachte ich mir, funktioniert ... und dazu noch viel besser, weil ich alle SQL anweisungen von SQL server erledigen lassen kann.

ok, jetzt nur noch meine vorhandenen tabellen einpflegen ... warte ma, diese funktion gibts aber leider nicht. heißt das jetzt, dass ich alle tabellen im SQL server neu erstellen und all meine daten per hand eingeben muss oder gibt's da eine gepflegte lösung?

wäre über jeden rat dankbar!
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Do 18.08.05 14:16 
Ich kenn mich jetzt mit Paradox nicht aus, aber die Datenbanken, die ich so kenne, haben alle nen irgendwie gearteten Export, der dir Struktur und Daten hübsch in SQL-Statements ausgibt, welche ja dann auf der Zeildatenbank einfach ausgeführt werden können.

Vorraussetzung ist natürlich, dass die Datentypen kompatible sind und z.B. Leere Strings gleich interpretiert werden. Hatte das Problem mit MYSQL->Oralce. Für MySQL ist '' <> NULL, für Oracle nicht. Bei nem not NULL-Feld kann das beim Import Probleme geben.

_________________
Bravery calls my name in the sound of the wind in the night...
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Do 18.08.05 14:31 
Titel: Re: paradox zu SQL Server
user profile iconDille hat folgendes geschrieben:
hi folks,
ok, jetzt nur noch meine vorhandenen tabellen einpflegen ... warte ma, diese funktion gibts aber leider nicht. heißt das jetzt, dass ich alle tabellen im SQL server neu erstellen und all meine daten per hand eingeben muss oder gibt's da eine gepflegte lösung?
wäre über jeden rat dankbar!


Unter Programme\Gemeinsame Dateien\Borland Shared\BDE findest du DataPump mit dem Programm kannst du sowohl die Tabellen als auch
die Daten umtransformieren!
p!nhead Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Do 18.08.05 14:42 
tjo... ich hab mich nun doch drangesetzt und werde jede table löschen und durch ein adodataset ersetzen... das alleine is ja nich schlimm, allerdings gibts da einige ttable befehle, die tadodataset leider nicht kennt.. das bedeutet ich muss sehr viele sachen neue schreiben.. wird einige tage in anspruch nehmen :/

falls doch noch jemandem eine einfachere lösung einfaellt, immer her damit :)
Dille
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 22.08.05 09:23 
Titel: Re: paradox zu SQL Server
user profile iconJRegier hat folgendes geschrieben:
user profile iconDille hat folgendes geschrieben:
hi folks,
ok, jetzt nur noch meine vorhandenen tabellen einpflegen ... warte ma, diese funktion gibts aber leider nicht. heißt das jetzt, dass ich alle tabellen im SQL server neu erstellen und all meine daten per hand eingeben muss oder gibt's da eine gepflegte lösung?
wäre über jeden rat dankbar!


Unter Programme\Gemeinsame Dateien\Borland Shared\BDE findest du DataPump mit dem Programm kannst du sowohl die Tabellen als auch
die Daten umtransformieren!


cheers fuer den tipp, leider kann ich keine dateien in SQL Server einplegen. Ich hab' ein kleines Proggy geschrieben, welches mir meine Daten von PARADOX direkt ueber die ODBC auf den SQL Server transferiert.

danke nochmal!