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
正如我在我的評論描述,它似乎很清楚,USER
是你的數據庫的用戶名,PWD
是用戶的密碼,DB
是數據庫名,QUERY
是要執行查詢。 QUERY
是您要執行的完整MySQL查詢字符串。有關查詢的所有信息(包括哪些表,哪些字段和條件)都包含在該查詢字符串中。這是一個標準的MySQL查詢字符串。據瞭解,您提供的用戶名和密碼有適當的權限來執行您將在QUERY
中提供的查詢。
例如,假設您有一個名爲mydb
的MySQL數據庫。也 假設mydb
有一個表叫mytable
看起來像這樣:
id foo bar
-- --- ---
1 ick poo
2 oh yeah
並進一步假設你的MySQL數據庫mydb
是通俗易懂的用戶fred
與密碼,freds=password
。然後你就可以用你表示Prolog的代碼下面的查詢:
?- 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).
這將產生:
Cols = ['id', 'bar']
Rows = [['1', 'poo']]
相關問題
- 1. jQuery - 任何人都可以幫助我......?
- 2. 任何人都可以幫助我嗎?
- 3. 任何人都可以幫助我知道我的應用程序是否可以將其加入App Store?
- 4. 任何人都可以幫助我調試我的程序
- 5. 任何人都可以幫助我優化我的查詢嗎?
- 6. 任何人都可以幫助我解決我的JavaScript代碼?
- 7. 任何人都可以幫助我優化我的代碼嗎?
- 8. 任何人都可以幫助我調試我的錯誤
- 9. 任何人都可以給我關於地面實況數據的幫助
- 10. 任何人都可以使用以下JScript幫助我嗎?
- 11. 任何人都可以幫助我如何使用接口?
- 12. 任何人都可以幫助我使用C++類嗎?
- 13. 任何人都可以幫助我使用「限制」
- 14. 任何人都可以用vector和class來幫助我嗎?
- 15. 任何人都可以幫助我在Wordpress中的重寫API?
- 16. JavaScript中的循環 - 任何人都可以幫助我理解?
- 17. 任何人都可以幫助我的Windows API NetApi32?
- 18. 任何人都可以幫助我的語法?
- 19. 任何人都可以幫助我的代碼在ATM?
- 20. 任何人都可以幫助我舉例Android的SSH代碼?
- 21. 任何人都可以幫助我的PHP圖表?
- 22. 我想使用tbxml解析以下xml,任何人都可以幫助我
- 23. 任何人都可以幫助我登錄會話不工作
- 24. 任何人都可以幫助我使這個對象。 (php)
- 25. 任何人都可以幫助我解決這個錯誤?
- 26. 任何人都可以幫助我在依賴注入?
- 27. 任何人都可以幫助解釋「get:function()」和.prototype給我嗎?
- 28. 任何人都可以幫助我找到Microsoft.VisualStudio.SourceSafe.Interop .dll嗎?
- 29. 任何人都可以幫助我在小牛隊打valgrind嗎?
- 30. 任何人都可以幫助我與twitter home_timeline api?
這顯然是爲MySQL編寫的數據庫。你的數據庫是MySQL嗎?看起來很清楚,「USER」是你的db用戶名,「PWD」是用戶的密碼,「DB」是數據庫名,「QUERY」是你想要執行的查詢。你還需要知道爲了嘗試它嗎?這個聲明「assertz(Clause).'本身,在這裏的任何其他語境是沒有意義的。 – lurker
在哪裏放表的名稱和列的名稱? – AAAA
它全部內置到查詢字符串中。這裏的「QUERY」是一個MySQL查詢。這就是你展示的代碼的結構。 – lurker