2002-08-11 Rodrigo Moya <rodrigo@ximian.com>
[mono.git] / mcs / class / System.Data / System.Data.OleDb / libgda.cs
1 //
2 // System.Data.OleDb.libgda
3 //
4 // Authors:
5 //   Rodrigo Moya (rodrigo@ximian.com)
6 //   Tim Coleman (tim@timcoleman.com)
7 //
8 // Copyright (C) Rodrigo Moya, 2002
9 // Copyright (C) Tim Coleman, 2002
10 //
11
12 using System.Data;
13 using System.Data.Common;
14 using System.Runtime.InteropServices;
15
16 namespace System.Data.OleDb
17 {
18         internal enum GdaCommandOptions {
19                 IgnoreErrors = 1,
20                 StopOnErrors = 1 << 1,
21                 BadOption = 1 << 2,
22         };
23
24         internal enum GdaCommandType {
25                 Sql = 0,
26                 Xml = 1,
27                 Procedure = 2,
28                 Table = 3,
29                 Schema = 4,
30                 Invalid = 5
31         };
32
33         internal enum GdaValueType {
34                 Null = 0,
35                 Bigint = 1,
36                 Binary = 2,
37                 Boolean = 3,
38                 Date = 4,
39                 Double = 5,
40                 GeometricPoint = 6,
41                 Integer = 7,
42                 List = 8,
43                 Numeric = 9,
44                 Single = 10,
45                 Smallint = 11,
46                 String = 12,
47                 Time = 13,
48                 Timestamp = 14,
49                 Tinyint = 15,
50                 Type = 16,
51                 Unknown = 17
52         };
53         
54         sealed internal class libgda
55         {
56                 private static IntPtr gdaClient = IntPtr.Zero;
57
58                 public static IntPtr GdaClient
59                 {
60                         get {
61                                 if (gdaClient == IntPtr.Zero)
62                                         gdaClient = gda_client_new ();
63
64                                 return gdaClient;
65                         }
66                 }
67                 
68                 [DllImport("gda-2")]
69                 public static extern void gda_init (string app_id, string version, int nargs, string[] args);
70
71                 [DllImport("gda-2")]
72                 public static extern GdaValueType gda_value_get_vtype (IntPtr value);
73
74                 [DllImport("gda-2")]
75                 public static extern bool gda_value_get_boolean (IntPtr value);
76                 
77                 [DllImport("gda-2")]
78                 public static extern int gda_data_model_get_n_rows (IntPtr model);
79
80                 [DllImport("gda-2")]
81                 public static extern int gda_data_model_get_n_columns (IntPtr model);
82
83                 [DllImport("gda-2")]
84                 public static extern IntPtr gda_data_model_get_value_at (IntPtr model, int col, int row);
85                 
86                 [DllImport("gda-2")]
87                 public static extern IntPtr gda_client_new ();
88
89                 [DllImport("gda-2")]
90                 public static extern IntPtr gda_client_open_connection (IntPtr client, string dsn, string username, string password);
91
92                 [DllImport("gda-2")]
93                 public static extern bool gda_connection_is_open (IntPtr cnc);
94                 
95                 [DllImport("gda-2")]
96                 public static extern bool gda_connection_close (IntPtr cnc);
97
98                 [DllImport("gda-2")]
99                 public static extern string gda_connection_get_database (IntPtr cnc);
100
101                 [DllImport("gda-2")]
102                 public static extern string gda_connection_get_dsn (IntPtr cnc);
103
104                 [DllImport("gda-2")]
105                 public static extern string gda_connection_get_cnc_string (IntPtr cnc);
106
107                 [DllImport("gda-2")]
108                 public static extern string gda_connection_get_provider (IntPtr cnc);
109
110                 [DllImport("gda-2")]
111                 public static extern string gda_connection_get_username (IntPtr cnc);
112
113                 [DllImport("gda-2")]
114                 public static extern string gda_connection_get_password (IntPtr cnc);
115
116                 [DllImport("gda-2")]
117                 public static extern IntPtr gda_transaction_new (string name);
118
119                 [DllImport("gda-2")]
120                 public static extern IntPtr gda_transaction_get_name (IntPtr xaction);
121
122                 [DllImport("gda-2")]
123                 public static extern IntPtr gda_transaction_set_name (IntPtr xaction, string name);
124         
125                 [DllImport("gda-2")]
126                 public static extern bool gda_connection_begin_transaction (IntPtr cnc, IntPtr xaction);
127
128                 [DllImport("gda-2")]
129                 public static extern bool gda_connection_commit_transaction (IntPtr cnc, IntPtr xaction);
130
131                 [DllImport("gda-2")]
132                 public static extern bool gda_connection_rollback_transaction (IntPtr cnc, IntPtr xaction);
133
134                 [DllImport("gda-2")]
135                 public static extern IntPtr gda_connection_execute_command (IntPtr cnc, IntPtr cmd, IntPtr parameterList);
136                 
137                 [DllImport("gda-2")]
138                 public static extern int gda_connection_execute_non_query (IntPtr cnc, IntPtr command, IntPtr parameterList);
139
140                 [DllImport("gda-2")]
141                 public static extern IntPtr gda_connection_execute_single_command (IntPtr cnc, IntPtr command, IntPtr parameterList);
142
143                 [DllImport("gda-2")]
144                 public static extern IntPtr gda_command_new (string text, GdaCommandType type, GdaCommandOptions options);
145
146                 [DllImport("gda-2")]
147                 public static extern void gda_command_set_text (IntPtr cmd, string text);
148
149                 [DllImport("gda-2")]
150                 public static extern void gda_command_set_command_type (IntPtr cmd, GdaCommandType type);
151         }
152 }