query(USER, PWD, DB, QUERY, Columns, Rows) :-
atom_concat('-p', PWD, PPWD),
process_create(path(mysql), ['-u', USER, PPWD, '-D', DB, '-e', QUERY], [stdout(pipe(Out)),stderr(std)]),
read_record(Out, Columns),
read_records(Out, Rows).
read_record(Out, Fields) :-
read_line_to_codes(Out, Codes),
Codes \= end_of_file,
atom_codes(Line, Codes),
atomic_list_concat(Fields, '\t', Line).
read_records(Out, [Record|Rs]) :-
read_record(Out, Record),
!, read_records(Out, Rs).
read_records(Out, []) :-
close(Out).
assertz(Clause).
-3
A
答えて
1
あなたは本当に意味をなさない。データベースに適用することで、一連の根本的な事実があると仮定し、この述語のセットをそれと共に実行できることを望みます。
これが当てはまる場合は、プロローグで統一について読み上げる必要があります。
1
私は私のコメントで述べたように、DB
はデータベース名、PWD
は、ユーザーのパスワードで、USER
は、データベースのユーザー名であることは明らかだが、QUERY
は、実行するクエリです。 QUERY
は、実行したい完全なMySQLクエリ文字列です。クエリに関するすべての情報(どのテーブル、どのフィールド、および条件を含む)がそのクエリ文字列に含まれているか。これは標準のMySQLクエリ文字列です。入力したユーザー名とパスワードには、QUERY
で指定するクエリを実行するための適切な権限があることがわかります。
たとえば、mydb
というMySQLデータベースがあるとします。 仮定もそのmydb
表は次のようになりますどのmytable
と呼ばれています:
id foo bar
-- --- ---
1 ick poo
2 oh yeah
そして、あなたのMySQLデータベースmydb
は、パスワードを持つユーザーfred
、freds=password
によってアクセス可能であることをさらに仮定します。
?- query('fred', 'freds=password', 'mydb', 'select * from mytable', Cols, Rows).
が得られますどの:
Cols = ['id', 'foo', 'bar']
Rows = [['1', 'ick', 'poo'], ['2', 'oh', 'yeah']]
するか、あなたが行うことができますが得られます
?- query('fred', 'freds=password', 'mydb', 'select id, bar from mytable limit 1', Cols, Rows).
を次に、あなたが見せていることPrologのコードで次のクエリを行うことができます。
Cols = ['id', 'bar']
Rows = [['1', 'poo']]
関連する問題
- 1. 誰でもこのSQL文を最適化できますか?
- 2. 誰も私にこのコードを説明できますか?
- 3. 誰も私にこのコードを説明できますか?
- 4. Javascript:誰も私にこのコードブロックを説明できますか?
- 5. 誰も私にこのMATLABコードを説明できますか?
- 6. AssemblyAlgorithmIdAttribute:これは誰でも使用できますか?
- 7. 誰でも私のプロジェクトにgithubをプッシュできますか?
- 8. jQuery - 誰でも私を助けることができます...?
- 9. これはマルチモードで802.3のことを誰でも説明できますか?
- 10. 誰もこのC++のループを私のために説明できますか?
- 11. 誰も私にこのクイックソートの例を説明できますか?
- 12. 誰もこのopencvコードの一部を私に説明できますか?
- 13. 誰も私にreactxのベストボイラープレートのリンクを送ることができますか?
- 14. 誰も私のためにこのコードを理解できますか?
- 15. 誰もこの文脈自由文法を私に説明できますか?
- 16. 誰でもJavaで書かれた私のアプリケーションを改善できますか?
- 17. 誰でもこのフッターのスクロールバーを削除できますか?
- 18. 誰も私の下でコードを助けることができますか?
- 19. 誰でも私のコードを説明できますか?
- 20. 誰でも私のSQLクエリを修正できますか?
- 21. 誰でもこのスクリプトを認識できますか?
- 22. 誰でもこの画像フォーマットを識別できますか?
- 23. 誰でもこの仕事を手助けできますか?
- 24. 誰でもこの言語を認識できますか?
- 25. 誰でもこのコードを説明できますか?
- 26. 誰でもこのレイアウトを提案できますか?
- 27. C誰でもこの構文を説明できますか?
- 28. 誰もが、これはコードでデータベースから
- 29. 誰でもこれを解決できます
- 30. 誰でもこのスクリプトのことを私に説明することはできますか?
これは明らかにMySQL用に書かれています。データベース。あなたのデータベースはMySQLですか? 'USER'はあなたのdbユーザー名で、' PWD'はユーザーのパスワード、 'DB'はデータベース名、' QUERY'は実行したいクエリです。それを試すために他に何を知っておく必要がありますか?ここでの他の文脈の中の文「assertz(Clause)。」は意味を持たない。 – lurker
テーブルの名前と列の名前はどこに置くのですか? – AAAA
これはすべてクエリー文字列に組み込まれています。 QUERYはMySQLのクエリです。これは、表示しているコードがどのように構造化されているかを示します。 – lurker