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-----
From: Daniel Morgan [mailto:[EMAIL PROTECTED]]
Sent:
Thursday, April 11, 2002 7:28 AM
To: Gonzalo Paniagua Javier
Cc: Rodrigo Moya
Subject:

 

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);
                        }
                }
        }
}

Reply via email to