2014-07-22 118 views
3

我正在尋找一種從AHK腳本與PostgreSQL數據庫交互的方式。 我目前找到的所有方法包括從命令行運行psql.exe,然後解析輸出。當然,這會導致難以置信的糟糕表現(每次執行過程)。從AutoHotKey快速訪問PostgreSQL數據庫

問題是,有什麼方法可以直接與數據庫進行交互嗎?有些東西可以讓你連接並通過DllCall或其他類似的方法從其他語言發送查詢發送查詢?

圖書館應該有可能做這樣的事情:

psql_connection := psql_connect("localhost", "5432", "postgres", "dbpass", "TestDB") 
rows := psql_query(psql_connection, "select * from TestTable limit 10") ; returns array of objects 
+0

快速查看錶明autohotkey是用C++編寫的。如果沒有人爲它寫入ODBC綁定,我會感到驚訝。如果他們沒有,那麼,我想你就起來了!直接使用'libpq'和'libpqtypes'或'libpqxx'可能會更容易。 –

+0

有用的lib https://github.com/IsNull/ahkDBA。它似乎不適用於postgres。 – roma

+1

@roma我不認爲一個圖書館已經實施...我建議在論壇這裏發佈一個帖子http://ahkscript.org,我相信很多人會提供幫助。如果沒有,我會盡力;) –

回答

0

你可以使用這個庫:https://autohotkey.com/board/topic/83542-func-adosql-uses-ado-to-manage-sql-transactions-v503l/

或者,如果冒險的感覺,爲ADODB.Connection在您使用ComObjCreate(「」)可以使用https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/connection-object-properties-methods-and-events的方法

;test - may not be accurate 
connection := ComObjCreate("ADODB.Connection") 
connection.Open("Provider =PostgreSQL OLE DB Provider; Data Source =localhost; location =DBTest; User ID =postgres; password =pass") 
recordset := connection.Execute("SELECT * FROM tablename")