2014-07-22 79 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")