2009-03-19 20 views
0

現代のプログラミング言語はいずれも、メソッドとしてmysqldumpをサポートしていますか、それともコマンドライン環境のドメインです。mysqlダンプをコマンドラインから外す

+1

これはMySQLの質問です。 Delphi、VB.NET、C#、その他のものではありません。言語固有のものとしてタグを付けると、その言語に関連するはずです。 –

答えて

1

.NET、デルファイ、および一般的なODBC/DAOのために(データベースドライバ)が利用可能なAPIと同様に、C/C++や他の言語用のライブラリがあります。これは決して主流言語自体に直接書き込まれることはありません。言語が一般目的であることを制限し、したがってそれをあまり有用でないものにする。

たとえば、DelphiにはDBExpressというデータベースフレームワークがあります。 MS SQL Server、Oracle、MySQL、DB2などのために用意されているDBExpressドライバがあります。使用可能なドライバは、購入することを決めたバージョン(Professional、Enterprise、Architect)によって異なります。 MySQLはすべてのバージョンで利用可能です。 dbExpressのフレームワークを使用し

誰かがためdbExpressドライバを提供することを決定する任意のデータベースエンジンとDelphiは使用可能になり、そしてドライバは、Delphi自体に書き込むことができます。それはDelphiをより一般的な目的に保ちます。 1つのRDBMSだけで動作するようにハードコードされているわけではありません。

EDIT:他の人が(私はジャレットを考えて)言ったように、mysqldumpをするためにソースが利用可能です。選択した言語に対応したラッパーを使用すると、そのソースに基づいて同じ機能を実装できるはずです。あなたの本能が正しい

+0

私は彼の質問が一般的なデータベースバインディングについてはわかりませんが、より具体的にはmysqldumpについてです。 –

+0

ええ、他の回答からはそういうことです。しかし、私の答えはまだ適用されます。私の編集を参照してください。

0

...それは、mysqldumpをへのAPIアクセスを提供するために、プログラミング言語ライブラリのためにかなり厳しいだろう。 mysqldumpのソースはC言語で書かれており、独自のmain()関数を持っています。独自のプログラムとして動作するように設計されています。これは実行可能ファイルとして構築され、多くのエラー報告と出力はstdoutへの直接的なprint文を使用して処理され、言語固有の値にラップされる戻り値は使用されません。

特定のプログラミング言語のほとんどのバインディング(PHP、Python、Delphi、.NETなど)をコンパイルすると、libmysqlとリンクし、libmysqlにはmysqldumpプログラムへの参照が含まれません。私は、誰もラッパーを書いていないことを確実に言うことはできませんが、実際には非常に奇妙なラッパーになるでしょう。言い換えれば

、あなたの最善の策は、mysqldumpをツールを呼び出すためにお好みのプログラミング言語からサブプロセスを使用し、標準入力からか、一時ファイルのいずれかからの結果を吸収することです。

1

PHPを使用していてGPLライセンスを気にしない場合は、phpMyAdminにはMySQLダンプ用のコード(CSVなどの他のフォーマットと同様)が含まれています。

libraries/export/sql.php 
+0

phpMyAdminがmysqldumpをまったく呼び出すのがコードでわかりません。 mysqldumpの出力を模倣しているようですが、直接使用するのではなく、大規模なデータベースやmysqldumpの複雑なデータ型や文字セットには問題があります。 –

+0

ええ、ポイントは、それはまったくmysqldumpツールを呼び出さないということです。 MySQLのダンプ用に独自のコードを実装しています。どのデータ型やチャットセットに問題があり、phpmyadminプロジェクトにバグとして報告されていますか? – thomasrutter

0

あなたの質問はかなり曖昧です:

は、ファイルをチェックしてください。あなたが達成したいことと、あなたがすでに試したことを説明してください。言われていること

あなたはmysqldumpをがないような方法でMySQLデータベースのDBのダンプを生成したい場合は、私が直接それを可能にしていないAPIを知っています。しかし、DBをダンプ/バックアップするには他にもたくさんの方法がありますが、mysqldump形式には問題があります(1つの点ではあまり定義されていないため、解析が容易ではありません)。だから、あなたは別のアプローチを検討するかもしれません。

関連する問題