Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Backup-Tool für Pervasive SQL 8.6

31 views
Skip to first unread message

franc walter

unread,
May 17, 2009, 12:41:27 PM5/17/09
to
Hallo,

ich suche ein Backuptool, mit dem ich eine umfangreiche PSQL Datenbank
(Version 8.6) mit 163 teils sehr gro�en Tabellen in ein Skript sichern
kann.
Genauer gesagt suche ich aus all diesen Tabellen einen bestimmten Wert, den
ich mit einem Backupskript hoffe schnell zu finden.

Kann mir jemand einen Tipp geben?
Pervasive unterst�tzt diese alte Version leider nicht mehr.

Gru� und danke, franc walter

Tim Landscheidt

unread,
May 17, 2009, 3:25:24 PM5/17/09
to
franc walter <franc...@gmx.de> wrote:

Wie greifst Du denn momentan auf die Datenbank zu? 163 SQL-
Statements zu generieren und ausf�hren zu lassen, sollte ja
selbst manuell kein un�berwindbares Problem darstellen.

Tim

franc walter

unread,
May 17, 2009, 6:38:10 PM5/17/09
to
Am Sun, 17 May 2009 19:25:24 +0000 schrieb Tim Landscheidt:

> Wie greifst Du denn momentan auf die Datenbank zu?

Es gibt da so ein k�mmerliches Tool, den SQL Data Manager, mit dem kann ich
Abfragen machen. Aber eine Abfrage auf zu viele Tabellen gleichzeitig
liefert mir sofort:

ODBC Error: SQLSTATE = 37000, Native error code = 0
Maximum number of 1600 result columns exceeded.

Frank Seitz

unread,
May 18, 2009, 7:43:53 AM5/18/09
to

Die Fehlermeldung besagt, dass nicht die Anzahl der Tabellen das
Problem ist, sondern die Anzahl der selektierten Kolumnen.
Diese kannst du ja einschr�nken.

Verstehe ansonsten dein Problem nicht. Du willst eine
Datenbank exportieren, um einen Wert zu finden?

Gr��e
Frank Seitz
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen f�r Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

franc walter

unread,
May 18, 2009, 2:51:19 PM5/18/09
to
Am Mon, 18 May 2009 13:43:53 +0200 schrieb Frank Seitz:

> Die Fehlermeldung besagt, dass nicht die Anzahl der Tabellen das
> Problem ist, sondern die Anzahl der selektierten Kolumnen.
> Diese kannst du ja einschr�nken.


Ich habe halt 163 Tabellen. Einige Tabellen haben sehr viele Spalten. Aber
ich muss es wohl so probieren. Wenn ich nur z.B. 10 verschiedene Abfragen
(mit je 16,3 Tabellen) zusammenfasse bin ich ja auch irgendwann fertig.


> Verstehe ansonsten dein Problem nicht. Du willst eine
> Datenbank exportieren, um einen Wert zu finden?

Ich habe eine Anwendung, in der bestimmte Werte in eine mir nicht bekannte
Tabelle hineingeschrieben werden. Diese Tabelle will ich finden.

Bernd Eckenfels

unread,
May 18, 2009, 3:06:57 PM5/18/09
to
franc walter <franc...@gmx.de> wrote:
> Ich habe halt 163 Tabellen. Einige Tabellen haben sehr viele Spalten. Aber
> ich muss es wohl so probieren. Wenn ich nur z.B. 10 verschiedene Abfragen
> (mit je 16,3 Tabellen) zusammenfasse bin ich ja auch irgendwann fertig.

Aeh mach doch eine pro tabelle?!

Gruss
Bernd

franc walter

unread,
May 18, 2009, 3:13:09 PM5/18/09
to
Am Mon, 18 May 2009 19:06:57 +0000 (UTC) schrieb Bernd Eckenfels:

> Aeh mach doch eine pro tabelle?!

Da brauch ich ja Stunden.

Bernd Eckenfels

unread,
May 18, 2009, 3:18:49 PM5/18/09
to
franc walter <franc...@gmx.de> wrote:
>> Aeh mach doch eine pro tabelle?!
>
> Da brauch ich ja Stunden.

wieso gibts da kein information_schema? bei oracle z.b.:

SELECT 'SELECT * FROM '|table_name|';' from USER_TABLES;

Gruss
Bernd

franc walter

unread,
May 18, 2009, 3:28:45 PM5/18/09
to
Am Mon, 18 May 2009 19:18:49 +0000 (UTC) schrieb Bernd Eckenfels:

> bei oracle z.b

Ist leider kein Oracle (und auch kein MSSQLServer oder MySQL), sondern nur
Perversive SQL

Bernd Eckenfels

unread,
May 18, 2009, 3:56:39 PM5/18/09
to
franc walter <franc...@gmx.de> wrote:
> Ist leider kein Oracle (und auch kein MSSQLServer oder MySQL), sondern nur
> Perversive SQL

Dort geht es (wie google mir verraet) mit

call psp_tables(,,'User table')

Weiss nicht, wie man das resultset in ein select verpasst, aber notfalls
gehts auch mit nem shellscrip daraus 346 "select *" statements zu machen.

Gruss
Bernd

franc walter

unread,
May 18, 2009, 4:02:57 PM5/18/09
to
Am Mon, 18 May 2009 13:43:53 +0200 schrieb Frank Seitz:

> Die Fehlermeldung besagt, dass nicht die Anzahl der Tabellen das
> Problem ist, sondern die Anzahl der selektierten Kolumnen.
> Diese kannst du ja einschr�nken.

Leider scheint auch schon eine Abfrage �ber eine Tabelle hinaus nicht zu
gehen:

Operation status: In progress
Exported rows: 0
Time: l�uft ewig weiter ohne dass was passiert.

franc walter

unread,
May 18, 2009, 4:26:08 PM5/18/09
to
Am Mon, 18 May 2009 19:56:39 +0000 (UTC) schrieb Bernd Eckenfels:

> call psp_tables(,,'User table')

Aber was ist mir damit gedient?

Torsten Schneider

unread,
May 19, 2009, 2:58:42 AM5/19/09
to
franc walter <franc...@gmx.de> wrote:

>> call psp_tables(,,'User table')
>
>Aber was ist mir damit gedient?

Wenn du alle Tabellennamen rausbekommst, kannst du die select-Statements
automatisch generieren lassen.


Grᅵᅵe, Torsten

Frank Seitz

unread,
May 19, 2009, 3:05:15 AM5/19/09
to

Kreuzprodukt ohne einschr�nkende Bedingung?
Kann es sein, dass du nicht so richtig wei�t was du tust?

franc walter

unread,
May 19, 2009, 4:22:30 AM5/19/09
to
Am Tue, 19 May 2009 09:05:15 +0200 schrieb Frank Seitz:

> Kreuzprodukt ohne einschr�nkende Bedingung?
> Kann es sein, dass du nicht so richtig wei�t was du tust?

Ja kann schon sein, das will ich nie ausschliessen :-)

Aber du hast recht, die Abfrage:

Select * from tab_A, tab_B, tab_C

kann ja gar nicht gehen. Peinlich.
Ich werde wohl nicht darum herumkommen entweder einzeln jede Tabelle zu
exportieren oder ein Programm zu schreiben, das mir das automatisch macht.
Mit einem Backup-Tool w�re das so sch�n einfach gewesen.
Sowas wie der "MySQL Administrator" von MySQL.

franc walter

unread,
May 19, 2009, 4:22:33 AM5/19/09
to
Am Tue, 19 May 2009 06:58:42 +0000 (UTC) schrieb Torsten Schneider:

> Wenn du alle Tabellennamen rausbekommst, kannst du die select-Statements
> automatisch generieren lassen

Die Tabellennamen habe ich schon.

Torsten Schneider

unread,
May 19, 2009, 4:54:36 AM5/19/09
to
franc walter <franc...@gmx.de> wrote:

>> Wenn du alle Tabellennamen rausbekommst, kannst du die select-Statements
>> automatisch generieren lassen
>
>Die Tabellennamen habe ich schon.

Und was spricht dann dagegen, die select-Statements automatisch zu
generieren und abzusetzen? Viel mehr als 10 Zeilen Shellscript sind das
nicht.


Grᅵᅵe, Torsten

franc walter

unread,
May 19, 2009, 5:05:30 AM5/19/09
to
Am Tue, 19 May 2009 08:54:36 +0000 (UTC) schrieb Torsten Schneider:

> Und was spricht dann dagegen, die select-Statements automatisch zu
> generieren und abzusetzen? Viel mehr als 10 Zeilen Shellscript sind das
> nicht.

Ich bin unter Windows. Ich kann die Exporte (bis jetzt) auch nicht von
Kommandozeile ausf�hren.

jakob kollmann

unread,
May 19, 2009, 6:40:17 AM5/19/09
to
Hallo!

franc walter wrote:
> Ich bin unter Windows. Ich kann die Exporte (bis jetzt) auch nicht von
> Kommandozeile ausf�hren.

Was spricht dagegen ein ODBC-Tool zu verwenden (z.B. auf Google
gefunden:
http://www.filesland.com/companies/SLIK-Software-Ltd/ODBC-View.html)

Das l�sst sich lt. Beschreibung auch aus der shell steuern.

lg. jakob

--
jakob kollmann www.filofant.org

Minds are like parachutes: they only function when they're open.
(Tommy Dewar, 1864 - 1930)

franc walter

unread,
May 19, 2009, 7:15:02 AM5/19/09
to
Am Tue, 19 May 2009 12:40:17 +0200 schrieb jakob kollmann:

> Was spricht dagegen ein ODBC-Tool zu verwenden (z.B. auf Google
> gefunden:
> http://www.filesland.com/companies/SLIK-Software-Ltd/ODBC-View.html

> Das l�sst sich lt. Beschreibung auch aus der shell steuern.

�ber ODBC habe ich es schon mit Aqua Data Studio probiert.
Aber das geht gar nicht. Ich kann mich zwar mit der DB verbinden aber die
Tabellenansicht z.B. bleibt einfach leer.

jakob kollmann

unread,
May 19, 2009, 8:05:51 AM5/19/09
to
franc walter wrote:
>
> �ber ODBC habe ich es schon mit Aqua Data Studio probiert.
> Aber das geht gar nicht. Ich kann mich zwar mit der DB verbinden aber die
> Tabellenansicht z.B. bleibt einfach leer.

Evt. kann das tool nur die Tabelleninformationen nicht auslesen? Kannst
du nach dem connect ein sql statement absetzen?

franc walter

unread,
May 19, 2009, 8:21:09 AM5/19/09
to
Am Tue, 19 May 2009 14:05:51 +0200 schrieb jakob kollmann:

> Evt. kann das tool nur die Tabelleninformationen nicht auslesen? Kannst
> du nach dem connect ein sql statement absetzen?

Ja, das geht. Mit deinem ODBC-Viewer auch.
Nur: das alles geht ja in dem PSQL-Tool auch.
Was ich brauche ist ein Tool, mit dem ich auf einen Schlag ALLE Tabellen
sichern kann.
Mittlerweile probiere ich schon so lange drumherum, dass ich eigentlich
auch schon jede einzelne Tabelle h�tte manuell einzeln sichern k�nnen.

jakob kollmann

unread,
May 19, 2009, 8:35:27 AM5/19/09
to
franc walter wrote:
> Was ich brauche ist ein Tool, mit dem ich auf einen Schlag ALLE Tabellen
> sichern kann.

Angenommen, du hast eine datei mit einer Liste der tabellen
(tables.txt):
tabelle1
tabelle2
tabelle3

Wenn du eine command shell �ffnest und darin

FOR /F %i IN (tables.txt) DO SQLTOOL "select * from %i">%i.dump

eingibst (bitte ersetze das wort SQLTOOL mit dem Namen und den
korrekten Parametern f�r den sql-viewer), bekommst du eine Reihe von
Dateien mit dem Inhalt der DB.

lg. jakob

franc walter

unread,
May 19, 2009, 8:53:06 AM5/19/09
to
Am Tue, 19 May 2009 14:35:27 +0200 schrieb jakob kollmann:

> FOR /F %i IN (tables.txt) DO SQLTOOL "select * from %i">%i.dump

Vielen Dank!
Das setzt aber voraus dass ich diesen SQL-Viewer auf der Kommandozeile
aufrufen kann, aber das kann ich ja gar nicht, das ist ein GUI-Tool,
wenigstens wei� ich nicht wie bzw. finde auch nichts in der Hilfe.

jakob kollmann

unread,
May 19, 2009, 9:55:33 AM5/19/09
to
franc walter wrote:
> Das setzt aber voraus dass ich diesen SQL-Viewer auf der Kommandozeile
> aufrufen kann, aber das kann ich ja gar nicht, das ist ein GUI-Tool,
> wenigstens wei� ich nicht wie bzw. finde auch nichts in der Hilfe.

Laut Hilfe:
Using ODBCView from the command line

ODBCView also supports a non-interactive command line mode to execute a
query and save the results to a text file. The syntax is as follows:

ODBCView.exe <DSN=DataSourceName;UID=User;PWD=Password>
[<SQLScript.sql>] [<OutputFile.htm|csv|txt>]

Where:

DataSource The desired datasource name.
UID An optional user name to logon to the database
PWD An optional user password
SQLScript The query to execute.
OutputFile The path to the output file. The files extension determines
the format. Use htm or html to HTML, csv for CSV.
Note: If you do not provide all three arguments then the main screen is
displayed. That is, if you only specify the datasource name then this
will automatically connect to the database.

Also m�sste es so gehen:
FOR /F %i IN (tables.txt) DO echo select * from %i >%i.sql &&
ODBCView.exe DSN=MyDatasource;UID=dbuser;PWD=dbpwd %i.sql %i.csv

franc walter

unread,
May 19, 2009, 3:48:22 PM5/19/09
to
Am Tue, 19 May 2009 15:55:33 +0200 schrieb jakob kollmann:

> Laut Hilfe:
> Using ODBCView from the command line

Vielen lieben Dank, das probiere ich aus. Super!

franc walter

unread,
May 25, 2009, 7:50:17 AM5/25/09
to
Am Sun, 17 May 2009 18:41:27 +0200 schrieb franc walter:

> Genauer gesagt suche ich aus all diesen Tabellen einen bestimmten Wert, den
> ich mit einem Backupskript hoffe schnell zu finden.

Ich habe jetzt in der Zwischenzeit vom Ersteller der Datenbank erfahren, WO
ich meinen Wert finden kann.
Muss also nicht mehr suchen.

Danke an alle.

Gru� franc

Florian Weimer

unread,
May 25, 2009, 5:06:52 PM5/25/09
to
* jakob kollmann:

> Wenn du eine command shell �ffnest und darin
>
> FOR /F %i IN (tables.txt) DO SQLTOOL "select * from %i">%i.dump
>
> eingibst (bitte ersetze das wort SQLTOOL mit dem Namen und den
> korrekten Parametern f�r den sql-viewer), bekommst du eine Reihe von
> Dateien mit dem Inhalt der DB.

Wobei das nicht unbedingt eine konsistente Sicht auf die Datenbank
liefert. Aber das Problem hat sich ja inzwischen anders erledigt.

franc walter

unread,
May 26, 2009, 11:40:13 AM5/26/09
to
Am Tue, 19 May 2009 15:55:33 +0200 schrieb jakob kollmann:

> Also m�sste es so gehen:
> FOR /F %i IN (tables.txt) DO echo select * from %i >%i.sql &&
> ODBCView.exe DSN=MyDatasource;UID=dbuser;PWD=dbpwd %i.sql %i.csv

Also ich habe u.a. aus Neugier doch mal deinen Weg probiert und es hat auf
Anhieb geklappt!
Das ist super!
Danke, Jakob.

Gru� franc

0 new messages