Accress zu PostgreSQL

Hallo,

bin Berufsschüler und habe folgendes Projekt bekommen:

Soll ein Programm schreiben, das mir mithilfe eines nativen Client eine Access Datenbank verlustfrei in PostgreSQL importiert.
Hat jemand ne Ahnung, wie ich an so nen Ding ran gehe oder welche Methoden mir zur Verfügung stehen (Borland Builder 6)?

Gruß

hi,

pauschale lösung: connect auf access und postgres und dann eine tablle nach der anderen einlesen, konvertieren und übernehmen.

schau auch mal bei http://techdocs.postgresql.org/. dort gibt es auch einen ganzen punkt access. vielleicht findest du ja dort etwas.

cu tb.

Hallo, ich arbeite am selben Projekt wie Promus.
Die einzigste Methode die ich bis jetzt entdecken konnte , ist die BatchMove Methode. Es gibt aber noch andere wege zum Ziel. Wichtig ist dabei nur die Beziehungen der Tabellen in Postgres zu integrieren.

Hallo Berufsschüler,

was haltet Ihr davon, wenn Ihre Eure Aufgabe mal etwas näher beschreibt. Was ist genau zu machen? Müsst Ihr ein Klient unbedingt schreiben oder nur eine bestehende Datenbank nach PostgreSQL tranferieren? Sind externe Programme erlaubt. Welche Programmiersprache müsst Ihr benutzen?

Ihr könnt es einfach oder schwer haben!

PS: Was heisst “verlustfrei”?


mfg

Friedrich Stockebrand

Also, wir sollen ein Programm schreiben, dass eine Access-Datenbank verlustfrei in eine PostgreSQL-Datenbank importiert.
Ganz wichtig dabei ist, das die Beziehungen erhalten bleiben und die Datentypen richtig umgesetzt werden.
Dabei heißt es in der Aufgabenstellung, das wir einen nativen Client nutzen ‘müssen’. Wobei ich glaube, wenn wir einen besseren Weg finden das sicher in Ordnung ist.

An Programmiersprachen beherrsche ich C / C++. Denke das ich auch bei den Sprachen beliben sollte, da ich es höchst Wahrscheinlich in 4 Monaten bei meiner Prüfung ähnlich machen muss.


Bin mit -]NAS[- heute auf eine Idee gekommen die wie folgt lautet:
Wir nehmen ‘einfach’ den Code der Accresstabellen und schreiben diese in einer Prozedur um. Sind ja im Grunde nur nen paar Schlüsselwörter, die geändert werden müssen ( Im Grunde, das da mehr hintersteckt is uns bewusst)

Was haltet ihr davon? Noch weiter gute Ideen oder weiß jemand, wie ich an den von der Access-SQL-Tabelle-Code per Prozedur komme?

Gruß
pr0mus

hi,

das sollte gehen. den größten teil müsstet ihr da eh verwenden können. ich weiß nicht wie access die verknüpfungen intern abbildet. evtl macht das den größten aufwand das auf sog. foreign keys umzustellen…

ansonsten wünsch ich euch da scho mal viel erfolg mit…

cu tb.

Das erfreut mich, dass unsere Idee in die richtige Richtung geht.

Weiß denn jemand, wie ich am besten an den SQL-Code aus der Accessdatenbank komme? Es müssen ja auch alle Beziehung mit drin stehen!
Mein Lehrer meinte, das das nicht ganz so einfach sei…

Anhang: Es soll über die ODBC (BDE - Borland Database Engine) Schnittstelle geschehen.

schau dir mal das an: http://www.office-loesung.de/viewtopic.php?t=47468

geht zwar mit mysql aber sollte aber auch auf postgresql gehen…

cu tb.

Hmm, das Problem ist, dass hier ja schon vorgegeben wird, welche Tabelle und welce Spalten davon exportier werden sollen.
Aber unser Programm soll das ja alle Tabellen automatisch exportieren…

Moin,
hab gard mal ein bisschen gekuckt, kenn mich mit Access nicht so aus aber Access unterstützt wohl keinen SQL-Dump, allerdings soll dies wohl mit VBA möglich sein… Wenn das stimmt könnte man ja ein Makro schreiben, das den Dump ausführt, vielleicht stehen da dann auch so Dinge drin wie foreign-keys. Das könnt man dann wieder einspielen.

Nur so ein Gedanke…


vielleicht hilft…
http://lists.phpbar.de/pipermail/mysql-de/2002-December/000478.html

Crypi

hi,

wieso eigentlich so umständlich :wink: beim stöbern haute auf der postgresql seite hab ich folgenden newseintrag gefunden:

We are glad to announce Access2PostgreSQL Sync v.1.0 release!

Access2PostgreSQL Sync is a new converter in our Data Conversion Product Line. This effective application allows you to convert and synchronize mdb (Microsoft Access databases) and PostgreSQL databases.

Please, find more info about the software at: > http://data-conversions.net/access-to-postgresql-sync-converter.html >

You can download the trial version from:
Data Conversion product line. Efficient database migration software for data transfer - import and export - able to convert MS Access databases (mdb) to MySQL or PostgreSQL server and MySQL databases to Microsoft Access db with synchronization and scheduling function >

You are welcome to evaluate free fully functional copy of Access2PostgreSQL Sync for as much as 10 runs.

We offer you 20% pre-Christmas discount at our new software product. To make use of this offer go to > Order Access2MySQL or Access2PostgreSQL database migration software with built-in scheduler. Buy our effective data converters right now > and purchase the software through ShareIt payment processing service. Specify the coupon code CPN-XMAS when filling the necessary payment information.

quelle: http://www.postgresql.org/about/news.449

allerdings kostet das tool etwas.

cu tb.

Ich glaube der weg über die Systemtabellen von Access entspricht eher den Anforderungen, wie wir es benötigen. Hab zwar noch keine ahnung wie ich die Systemtabellen mit Borland öffne und bearbeite, das wird sich aber auch rausfinden lassen :slight_smile:

Hallo,

ich habe jetzt folgende Probleme.

Ich versuche die Tabellen von Access nach pgSQL zu packen.
Da besteht allerdings das Problem der unterschiedlichen Datentypen. Ich weiß nicht wie ich an die Datentypen komme.
Wäre sehr nett, wenn mir jemand einen Tipp geben könnte.

hi,

an welche datentypen? die von postgresql stehen doch sauber in der doku und dann musst du halt eine umschreibung definieren

text => varchar
zahl => integer

das tool ist nur so intelligent wie der programmierer es programmiert hat und wie der user es benutzt…

cu tb.

Ich will über BCB 6 an die Datentypen der Tabelleneinträge. Ansatzweise weiß ich wie, aber ich hänge da irgendwie fest.
In den Eigenschaften des Steuerelements TTable gibt es eine Eigenschaft namens FieldDefs. In diesen Eigenschaften stehen die Datentypen. Die benötige ich, da sie ja pgSQL kompatibel konvertiert werden müssen.

Hi,

also derzeitige Stand ist, das wir wissen wie wir die Spaltennamen, Inhalte, Datentypen… auslesen.
Wir holen so ziemlich alles aus den Systemtabellen der Accessdaenbank.

Das nächste ist nun, wie wir den ganzen kram in Postgre schreiben. Gibt es da irgendwelche Methoden?

Öhm…ja. Wenn du die Doku lesen würdest, würde dir sofort die C-Library ins Auge fallen. Ich vermute mal, das das genau das ist, was du brauchst, da du oben von BCB schrubst.

Schau dir das mal, das erlaubt eigentlich alle DB-Operationen in dein C+±Programm einzubauen.

hmm,
wieso die tabellenerstellung etc.pp. nicht via sql-queries realisieren?

db->execute(“CREATE TABLE tablename
(
pkey int8 NOT NULL DEFAULT, nextval(‘registration_event_log_pkey_seq’::text),
created timestamptz DEFAULT (now())::timestamp(0) with time zone,
updated timestamptz DEFAULT (now())::timestamp(0) with time zone,
deleted timestamptz,
fdeleted bool DEFAULT false,
createdby int8,
updatedby int8,
deletedby int8,
[usw…]
CONSTRAINT registration_event_log_pkey PRIMARY KEY (pkey)
)
WITH OIDS;
ALTER TABLE regengine_event_log OWNER TO postgres;”);

Grüße

Jochen