|
Adam, Here is the sample pinvoke
to PostgreSQL that compiles and runs fine on windows but fails compiling on linux that gonzalo tested. - Daniel -----Original Message----- Gonzalo, I have put the PostgreSQL pinvoke C# sample as an attachment to make it
easier for you to compile and run it. Notice, I’m using “pq” in the DllImport attribute
instead of “pq.dll” or “libpq.so”. Thanks, Daniel |
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
// PostgreSQL client library:
// under cygwin, it is pq.dll while under linux, it is libpq.so
[DllImport("pq")]
public static extern IntPtr PQconnectdb(String conninfo);
// PGconn *PQconnectdb(const char *conninfo)
[DllImport("pq")]
public static extern void PQfinish(IntPtr conn);
// void PQfinish(PGconn *conn)
[DllImport("pq")]
public static extern IntPtr PQexec(IntPtr conn,
String query);
// PGresult *PQexec(PGconn *conn, const char *query);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
IntPtr dbconn;
String sConnInfo;
String sQuery;
sConnInfo = "host=localhost dbname=test user=danmorg
password=viewsonic";
sQuery = "insert into sometable " +
"(tid,tdesc) " +
"values('pq','just pq') ";
dbconn = PQconnectdb(sConnInfo);
if(dbconn == IntPtr.Zero)
Console.WriteLine("dbconn is null");
else
{
Console.WriteLine("assuming successful connection");
PQexec(dbconn,sQuery);
PQfinish(dbconn);
}
}
}
}
