xlang v5.1 Release
程序设计语言基础库文档
载入中...
搜索中...
未找到
Sqlite.xcsm
浏览该文件的文档.
1//xlang Source, Name:Sqlite.xcsm
2//Date: Wed Mar 00:26:43 2019
3
4
5class Sqlite : Sql.Connection{
6 static const String DRIVERNAME = "sqlite";
7
8 public static bool registry(){
9 if (Native.init()){
10 Sql.Database.reigstry(DRIVERNAME, new SqliteRegister());
11 return true;
12 }
13 return false;
14 }
15
16
17 static class SqliteRegister : Sql.ConnectionRegister{
19 if (drivername.equals("sqlite")){
20 return new Sqlite();
21 }
22 return nilptr;
23 }
24 };
25
26
27 public static class CSTDNative : Library{
28 static bool loaded = false;
29 public static bool load(){
30 if (loaded == false){
31 int cstd_os = _system_.getPlatformId();
32 try{
33 if (cstd_os == _system_.PLATFORM_WINDOWS){
34 loadLibrary("ntdll.dll");
35 }else
36 if (cstd_os == _system_.PLATFORM_LINUX){
37 loadLibrary("libc.so.6");
38 }else
39 if (cstd_os == _system_.PLATFORM_MACOSX){
40 loadLibrary("libc.dylib");
41 }
42 loaded = true;
43 }catch(Exception e){
45 }
46 }
47 return loaded;
48 }
49 public import{
50 Pointer cdecl memcpy(ObjectPtr dest, Pointer src, Pointer n);
51 Pointer cdecl strcpy(ObjectPtr dest, ObjectPtr src);
52 Pointer cdecl strlen(Pointer);
53 };
54 };
55 static class Native : Library{
56 static bool bloaded = false;
57
58 public static bool init(){
59 if (bloaded == false){
60 if (CSTDNative.load()){
61 try{
62 loadLibrary("sqlite3");
63 bloaded = true;
64 }catch(Exception e){
66 }
67 }
68 }
69 return bloaded;
70 }
71
72 public import {
73 int cdecl sqlite3_open(
74 String filename, /* Database filename (UTF-8) */
75 ObjectPtr ppDb /* OUT: SQLite db handle */
76 );
77
78 /*int cdecl sqlite3_key(
79 Pointer db, /* Database to be rekeyed * /
80 String pKey, int nKey /* The key * /
81 );*/
82
83 int cdecl sqlite3_close(
84 Pointer db);
85 int cdecl sqlite3_step(long pStmt);
86 int cdecl sqlite3_exec(
87 Pointer db, /* An open database */
88 String sql, /* SQL to be evaluated */
89 Pointer , /* Callback function */
90 Pointer , /* 1st argument to callback */
91 ObjectPtr msg /* Error msg written here */
92 );
93 int cdecl sqlite3_prepare(
94 Pointer db, /* Database handle. */
95 String zSql, /* UTF-8 encoded SQL statement. */
96 int nBytes, /* Length of zSql in bytes. */
97 ObjectPtr ppStmt, /* OUT: A pointer to the prepared statement */
98 ObjectPtr pzTail /* OUT: End of parsed string */
99 );
101 Pointer db, /* Database handle. */
102 String zSql, /* UTF-8 encoded SQL statement. */
103 int nBytes, /* Length of zSql in bytes. */
104 ObjectPtr ppStmt, /* OUT: A pointer to the prepared statement */
105 ObjectPtr pzTail /* OUT: End of parsed string */
106 );
107 int cdecl sqlite3_reset(Pointer pStmt);
108 int cdecl sqlite3_bind_int(Pointer pStmt, int, int);
109 int cdecl sqlite3_bind_int64(Pointer pStmt, int, long);
110 int cdecl sqlite3_bind_double(Pointer pStmt, int, double);
111 int cdecl sqlite3_bind_null(Pointer pStmt, int);
112 int cdecl sqlite3_bind_text(Pointer pStmt, int, String, int , Pointer);
113 int cdecl sqlite3_bind_blob(Pointer pStmt, int ,ObjectPtr, int , Pointer);
114 String cdecl sqlite3_errmsg(Pointer pStmt);
115 int cdecl sqlite3_errcode(Pointer db);
116 int cdecl sqlite3_column_int(Pointer pStmt, int i);
117 int cdecl sqlite3_changes(Pointer pStmt);
118 double cdecl sqlite3_column_double(Pointer pStmt, int i);
119 long cdecl sqlite3_column_int64(Pointer pStmt, int i);
120 String cdecl sqlite3_column_text(Pointer pStmt, int i);
121 int cdecl sqlite3_column_count(Pointer pStmt);
122 String cdecl sqlite3_column_name(Pointer pStmt, int N);
123 String cdecl sqlite3_column_decltype(Pointer pStmt, int N);
124 int cdecl sqlite3_finalize(Pointer pStmt);
125 long cdecl sqlite3_last_insert_rowid(Pointer pStmt);
126 };
127 };
128
129 static bool registried = registry();
130 long hdb = 0;
131
132 public void create(String uri, String username, String pwd)override{
133 int err = Native.sqlite3_open(uri, hdb);
134 if (err != 0){
135 throw new Sql.SqlException(err, "can not open database:" + uri);
136 }
137 /*if (pwd != nilptr){
138 err = Native.sqlite3_key(hdb, pwd, pwd.length());
139 if (err != 0){
140 throw new Sql.SqlException(err, "password incorrect");
141 }
142 }*/
143 }
144
149 public void setOption(int opt, Object option)override{
150 throw new Sql.DatabaseNotSupportException("setOption");
151 }
152
153 public void throw_sqlite_error(){
154 throw new Sql.SqlException(getErrorCode(),__file__ + ":" + __line__ + ", SQLITE: " + getError() );
155 }
156 public int getErrorCode()override{
157 return Native.sqlite3_errcode(hdb);
158 }
159
160 public String getError()override{
161 return Native.sqlite3_errmsg(hdb);
162 }
163
164 public Object getOption(int opt)override{
165 throw new Sql.DatabaseNotSupportException("getOption");
166 return nilptr;
167 }
168
170 return new SqlitePreparedStatement(this, sql);
171 }
172
174 return new SqlitePreparedStatement(this);
175 }
176
177 public bool isClosed()override{
178 return hdb != 0;
179 }
180
181 public long getLastInsertedRowId(){
182 return Native.sqlite3_last_insert_rowid(hdb);
183 }
184
185 public void close()override{
186 if (hdb != 0){
187 Native.sqlite3_close(hdb);
188 hdb = 0;
189 }
190 }
191
192 void finalize(){
193 close();
194 }
195
196 public static const int SYNCHRONOUS_FULL = 2;
197 public static const int SYNCHRONOUS_NORMAL = 1;
198 public static const int SYNCHRONOUS_OFF = 0;
199
200 public int enableSycnhronous(int n){
201 if (n < 0 || n > 2){
202 return -1;
203 }
204 String [] cof = {"FULL", "NORMAL", "OFF"};
205 return execute("PRAGMA synchronous = " + cof[n] + ";");
206 }
207
208 public int workBegin(){
209 return execute("BEGIN;");
210 }
211
212 public int commit(){
213 return execute("COMMIT;");
214 }
215
216 public int rollback(){
217 return execute("ROLLBACK;");
218 }
219
220 public String generateErrorText(long herr, String fallback){
221 if (herr != 0){
222 long len = CSTDNative.strlen(herr);
223 byte [] data = new byte[len + 1];
224 CSTDNative.memcpy(data, herr, len);
225 return new String(data, 0, len);
226 }
227 return fallback;
228 }
229
230 public int execute(String stmt){
231 if (hdb != 0){
232 long msg = 0;
233 int err = Native.sqlite3_exec(hdb, stmt, (long)0, (long)0, msg);
234 if (err != 0){
236 }
237 return err;
238 }
239 throw new Sql.SqlException(-1, "database not opened");
240 return -1;
241 }
242
243 public int get_changes(){
244 return Native.sqlite3_changes(hdb);
245 }
246
247 public long prepare(String sql){
248 long nstmt = 0;
249 if (hdb != 0){
250 int err = Native.sqlite3_prepare_v2(hdb, sql, sql.length(), nstmt, nilptr);
251 if (err != 0 || nstmt == 0){
253 }
254 return nstmt;
255 }
256 throw new Sql.SqlException(-1, "database not opened");
257 return nstmt;
258 }
259
260 public long getDb(){
261 return hdb;
262 }
263
264
265 public static class SqlitePreparedStatement : Sql.PreparedStatement{
268 long nstmt = 0;
269 int param_pos = 0;
270 Vector<Object> stored_params = new Vector<Object>();
271 public long getHandle(){
272 return nstmt;
273 }
274
276 sqlite = db;
277 sql_text = sql;
278 nstmt = sqlite.prepare(sql);
279 }
280
282 sqlite = db;
283 }
284
285 public int execute(String sql)override{
286 return sqlite.execute(sql);
287 }
288
289 public bool reset(){
290 return Native.sqlite3_reset(nstmt) == 0;
291 }
292 public int executeUpdate()override{
293 int r = Native.sqlite3_step(nstmt);
294 if (101 == r){
295 return 0;
296 }
297 return r;
298 }
299
300 public int execute()override{
301 int r = Native.sqlite3_step(nstmt);
302 if (101 == r){
303 return 0;
304 }
305 return r;
306 }
307
308 public Sql.ResultSet executeQuery()override{
309 return new SqliteResultSet(sqlite, this);
310 }
311
312 public Sql.ResultSet executeQuery(String sql)override{
313 nstmt = sqlite.prepare(sql);
314 return new SqliteResultSet(sqlite, this);
315 }
316
317 public int executeUpdate(String sql)override{
318 return sqlite.execute(sql);
319 }
320
321 public int get_changes()override{
322 return sqlite.get_changes();
323 }
324
325 public Sql.ResultSet getResult()override{
326 throw new Sql.DatabaseNotSupportException("getResult");
327 return nilptr;
328 }
329
330 public void close()override{
331 if (nstmt != 0){
332 Native.sqlite3_finalize(nstmt);
333 nstmt = 0;
334 }
335 sqlite = nilptr;
336 }
337
338
339 public void setValue(String value)override{
340 stored_params.add(value);
341 int res = 0;
342 if (value != nilptr){
343 res = Native.sqlite3_bind_text(nstmt, ++param_pos, value, value.length(), nilptr);
344 if (0 != res){
345 sqlite.throw_sqlite_error();
346 }
347 }else{
348 res = Native.sqlite3_bind_null(nstmt, ++param_pos);
349 if (0 != res){
350 sqlite.throw_sqlite_error();
351 }
352 }
353 }
354
355 public void setValue(int value)override{
356 int res = Native.sqlite3_bind_int(nstmt, ++param_pos, value);
357 if (0 != res){
358 sqlite.throw_sqlite_error();
359 }
360 }
361
362 public void setValue(long value)override{
363 int res = Native.sqlite3_bind_int64(nstmt, ++param_pos, value);
364 if (0 != res){
365 sqlite.throw_sqlite_error();
366 }
367 }
368
369 public void setValue(byte value)override{
370 int res = Native.sqlite3_bind_int(nstmt, ++param_pos, value);
371 if (0 != res){
372 sqlite.throw_sqlite_error();
373 }
374 }
375
376 public void setValue(double value)override{
377 int res = Native.sqlite3_bind_double(nstmt, ++param_pos, value);
378 if (0 != res){
379 sqlite.throw_sqlite_error();
380 }
381 }
382
383
384 public void setValue(int id, String value)override{
385 stored_params.add(value);
386 int res = 0;
387 if (value != nilptr){
388 res = Native.sqlite3_bind_text(nstmt, id, value, value.length(), nilptr);
389 if (0 != res){
390 sqlite.throw_sqlite_error();
391 }
392 }else{
393 res = Native.sqlite3_bind_null(nstmt, id);
394 if (0 != res){
395 sqlite.throw_sqlite_error();
396 }
397 }
398 }
399
400 public void setValue(int id, int value)override{
401 int res = Native.sqlite3_bind_int(nstmt, id, value);
402 if (0 != res){
403 sqlite.throw_sqlite_error();
404 }
405 }
406
407 public void setValue(int id, long value)override{
408 int res = Native.sqlite3_bind_int64(nstmt, id, value);
409 if (0 != res){
410 sqlite.throw_sqlite_error();
411 }
412 }
413
414 public void setValue(int id, byte value)override{
415 int res = Native.sqlite3_bind_int(nstmt, id, value);
416 if (0 != res){
417 sqlite.throw_sqlite_error();
418 }
419 }
420
421 public void setValue(int id, double value)override{
422 int res = Native.sqlite3_bind_double(nstmt, id, value);
423 if (0 != res){
424 sqlite.throw_sqlite_error();
425 }
426 }
427
428 public void setValues(Object [] args)override{
429 for (int i = 0; i < args.length; i++){
430 if (args[i].instanceOf(String)){
431 stored_params.add(args[i]);
432 setValue((String)args[i]);
433 }else
434 if (args[i].instanceOf(int)){
435 setValue((int)args[i]);
436 }else
437 if (args[i].instanceOf(long)){
438 setValue((long)args[i]);
439 }else
440 if (args[i].instanceOf(byte)){
441 setValue((byte)args[i]);
442 }else
443 if (args[i].instanceOf(double)){
444 setValue((double)args[i]);
445 }else{
446 throw new Sql.SqlException(-1, "sql " + sql_text + " dont accept type:" + i);
447 }
448 }
449 }
450 };
451
452 public static class SqliteResultSet : Sql.ResultSet{
454 SqlitePreparedStatement sps;
455 Map<String, int> __fields_Map = new Map<String, int>();
456
457 public SqliteResultSet(Sqlite db, SqlitePreparedStatement _sps){
458 sqlite = db;
459 sps = _sps;
460 parseResult();
461 }
462
463 public int getColumnCount()override{
464 return Native.sqlite3_column_count(sps.getHandle());
465 }
466
467 public String getColumnName(int n)override{
468 return Native.sqlite3_column_name(sps.getHandle(), n);
469 }
470
471 public void parseResult(){
472 int ncolumn = Native.sqlite3_column_count(sps.getHandle());
473 for (int i = 0; i < ncolumn; i++){
474 String colutext = Native.sqlite3_column_name(sps.getHandle(), i);
475 __fields_Map.put(colutext, i);
476 }
477 }
478
479 public int label2idx(String label){
480 return __fields_Map.get(label);
481 }
482
483 public bool first()override{
484 throw new Sql.DatabaseNotSupportException("first");
485 return false;
486 }
487
488 public bool last()override{
489 throw new Sql.DatabaseNotSupportException("last");
490 return false;
491 }
492
493 public bool next()override{
494 int code = Native.sqlite3_step(sps.getHandle());
495 return 100 == code;
496 }
497
498 public bool previous()override{
499 throw new Sql.DatabaseNotSupportException("previous");
500 return false;
501 }
502
503 public bool isFirst()override{
504 throw new Sql.DatabaseNotSupportException("isFirst");
505 return false;
506 }
507
508 public bool isLast()override{
509 throw new Sql.DatabaseNotSupportException("isLast");
510 return false;
511 }
512
513 public bool isValid()override{
514 return sps != nilptr && (sps.getHandle() != 0);
515 }
516
517 public bool isEof()override{
518 throw new Sql.DatabaseNotSupportException("isEof");
519 return false;
520 }
521
522 public int getInt(String columnlabel)override{
523 return Native.sqlite3_column_int(sps.getHandle(), label2idx(columnlabel));
524 }
525
526 public long getLong(String columnlabel)override{
527 return Native.sqlite3_column_int64(sps.getHandle(), label2idx(columnlabel));
528 }
529
530 public double getDouble(String columnlabel)override{
531 return Native.sqlite3_column_double(sps.getHandle(), label2idx(columnlabel));
532 }
533
534 public float getFloat(String columnlabel)override{
535 return getString(columnlabel).parseFloat();
536 }
537
538 public byte getByte(String columnlabel)override{
539 return Native.sqlite3_column_int(sps.getHandle(), label2idx(columnlabel));
540 }
541
542 public bool getBoolean(String columnlabel)override{
543 return Native.sqlite3_column_int(sps.getHandle(), label2idx(columnlabel)) != 0;
544 }
545
546 public String getString(String columnlabel)override{
547 return Native.sqlite3_column_text(sps.getHandle(), label2idx(columnlabel));
548 }
549
550 public int getInt(int columnIndex)override{
551 return Native.sqlite3_column_int(sps.getHandle(), columnIndex);
552 }
553
554 public long getLong(int columnIndex)override{
555 return Native.sqlite3_column_int64(sps.getHandle(), columnIndex);
556 }
557
558 public double getDouble(int columnIndex)override{
559 return Native.sqlite3_column_double(sps.getHandle(), columnIndex);
560 }
561
562 public float getFloat(int columnIndex)override{
563 return getString(columnIndex).parseFloat();
564 }
565
566 public byte getByte(int columnIndex)override{
567 return Native.sqlite3_column_int(sps.getHandle(), columnIndex);
568 }
569
570 public bool getBoolean(int columnIndex)override{
571 return Native.sqlite3_column_int(sps.getHandle(), columnIndex)!= 0;
572 }
573
574 public String getString(int columnIndex)override{
575 return Native.sqlite3_column_text(sps.getHandle(), columnIndex);
576 }
577
578
579
580 public int findColumn(String label)override{
581 return label2idx(label);
582 }
583
584 public long getRowCount()override{
585 throw new Sql.DatabaseNotSupportException("getRow");
586 return 0;
587 }
588
589 public int getRow()override{
590 throw new Sql.DatabaseNotSupportException("getRow");
591 return 0;
592 }
593
594 public void close()override{
595
596 }
597
598 };
599};
static final int getPlatformId()
static final void output(String)
static const int PLATFORM_MACOSX
Definition _system_.x:23
static const int PLATFORM_WINDOWS
Definition _system_.x:21
static const int PLATFORM_LINUX
Definition _system_.x:22
final String getMessage()
static final void loadLibrary(String)
Definition Object.x:1
static bool reigstry(String name, ConnectionRegister reg)
Definition xsql.xcs:210
static bool loaded
Definition Sqlite.xcsm:28
static bool load()
Definition Sqlite.xcsm:29
int cdecl sqlite3_bind_text(Pointer pStmt, int, String, int , Pointer)
int cdecl sqlite3_finalize(Pointer pStmt)
int cdecl sqlite3_bind_int(Pointer pStmt, int, int)
int cdecl sqlite3_close( Pointer db)
long cdecl sqlite3_column_int64(Pointer pStmt, int i)
double cdecl sqlite3_column_double(Pointer pStmt, int i)
int cdecl sqlite3_errcode(Pointer db)
String cdecl sqlite3_column_text(Pointer pStmt, int i)
int cdecl sqlite3_bind_double(Pointer pStmt, int, double)
int cdecl sqlite3_bind_null(Pointer pStmt, int)
int cdecl sqlite3_bind_blob(Pointer pStmt, int ,ObjectPtr, int , Pointer)
int cdecl sqlite3_prepare( Pointer db, String zSql, int nBytes, ObjectPtr ppStmt, ObjectPtr pzTail )
int cdecl sqlite3_exec( Pointer db, String sql, Pointer , Pointer , ObjectPtr msg )
int cdecl sqlite3_step(long pStmt)
String cdecl sqlite3_errmsg(Pointer pStmt)
int cdecl sqlite3_column_int(Pointer pStmt, int i)
String cdecl sqlite3_column_decltype(Pointer pStmt, int N)
int cdecl sqlite3_column_count(Pointer pStmt)
long cdecl sqlite3_last_insert_rowid(Pointer pStmt)
int cdecl sqlite3_reset(Pointer pStmt)
static bool bloaded
Definition Sqlite.xcsm:56
int cdecl sqlite3_bind_int64(Pointer pStmt, int, long)
int cdecl sqlite3_prepare_v2( Pointer db, String zSql, int nBytes, ObjectPtr ppStmt, ObjectPtr pzTail )
String cdecl sqlite3_column_name(Pointer pStmt, int N)
int cdecl sqlite3_changes(Pointer pStmt)
static bool init()
Definition Sqlite.xcsm:58
void setValue(int id, byte value) override
Definition Sqlite.xcsm:414
SqlitePreparedStatement(Sqlite db, String sql)
Definition Sqlite.xcsm:275
int get_changes() override
Definition Sqlite.xcsm:321
void setValue(int value) override
Definition Sqlite.xcsm:355
void setValue(int id, long value) override
Definition Sqlite.xcsm:407
void setValue(int id, int value) override
Definition Sqlite.xcsm:400
int execute(String sql) override
Definition Sqlite.xcsm:285
void setValue(long value) override
Definition Sqlite.xcsm:362
Sql.ResultSet executeQuery() override
Definition Sqlite.xcsm:308
void setValue(int id, String value) override
Definition Sqlite.xcsm:384
void setValue(int id, double value) override
Definition Sqlite.xcsm:421
Sql.ResultSet executeQuery(String sql) override
Definition Sqlite.xcsm:312
int executeUpdate() override
Definition Sqlite.xcsm:292
int executeUpdate(String sql) override
Definition Sqlite.xcsm:317
void setValue(String value) override
Definition Sqlite.xcsm:339
void setValues(Object [] args) override
Definition Sqlite.xcsm:428
Sql.ResultSet getResult() override
Definition Sqlite.xcsm:325
void setValue(byte value) override
Definition Sqlite.xcsm:369
void setValue(double value) override
Definition Sqlite.xcsm:376
Sql.Connection allocConnection(String drivername) override
Definition Sqlite.xcsm:18
String getString(int columnIndex) override
Definition Sqlite.xcsm:574
String getString(String columnlabel) override
Definition Sqlite.xcsm:546
bool getBoolean(int columnIndex) override
Definition Sqlite.xcsm:570
bool isFirst() override
Definition Sqlite.xcsm:503
bool next() override
Definition Sqlite.xcsm:493
int getRow() override
Definition Sqlite.xcsm:589
void close() override
Definition Sqlite.xcsm:594
bool isValid() override
Definition Sqlite.xcsm:513
bool isLast() override
Definition Sqlite.xcsm:508
int getColumnCount() override
Definition Sqlite.xcsm:463
double getDouble(String columnlabel) override
Definition Sqlite.xcsm:530
float getFloat(String columnlabel) override
Definition Sqlite.xcsm:534
int label2idx(String label)
Definition Sqlite.xcsm:479
long getRowCount() override
Definition Sqlite.xcsm:584
Map<String, int> __fields_Map
Definition Sqlite.xcsm:455
int getInt(String columnlabel) override
Definition Sqlite.xcsm:522
float getFloat(int columnIndex) override
Definition Sqlite.xcsm:562
bool isEof() override
Definition Sqlite.xcsm:517
long getLong(int columnIndex) override
Definition Sqlite.xcsm:554
bool first() override
Definition Sqlite.xcsm:483
double getDouble(int columnIndex) override
Definition Sqlite.xcsm:558
SqlitePreparedStatement sps
Definition Sqlite.xcsm:454
bool previous() override
Definition Sqlite.xcsm:498
String getColumnName(int n) override
Definition Sqlite.xcsm:467
bool last() override
Definition Sqlite.xcsm:488
byte getByte(String columnlabel) override
Definition Sqlite.xcsm:538
long getLong(String columnlabel) override
Definition Sqlite.xcsm:526
SqliteResultSet(Sqlite db, SqlitePreparedStatement _sps)
Definition Sqlite.xcsm:457
bool getBoolean(String columnlabel) override
Definition Sqlite.xcsm:542
byte getByte(int columnIndex) override
Definition Sqlite.xcsm:566
int getInt(int columnIndex) override
Definition Sqlite.xcsm:550
int findColumn(String label) override
Definition Sqlite.xcsm:580
int getErrorCode() override
Definition Sqlite.xcsm:156
void throw_sqlite_error()
Definition Sqlite.xcsm:153
static const int SYNCHRONOUS_OFF
Definition Sqlite.xcsm:198
long getDb()
Definition Sqlite.xcsm:260
static const int SYNCHRONOUS_NORMAL
Definition Sqlite.xcsm:197
void close() override
Definition Sqlite.xcsm:185
void create(String uri, String username, String pwd) override
Definition Sqlite.xcsm:132
Object getOption(int opt) override
Definition Sqlite.xcsm:164
void finalize()
Definition Sqlite.xcsm:192
long hdb
Definition Sqlite.xcsm:130
int execute(String stmt)
Definition Sqlite.xcsm:230
int workBegin()
Definition Sqlite.xcsm:208
bool isClosed() override
Definition Sqlite.xcsm:177
static const String DRIVERNAME
Definition Sqlite.xcsm:6
static bool registry()
Definition Sqlite.xcsm:8
int commit()
Definition Sqlite.xcsm:212
long getLastInsertedRowId()
Definition Sqlite.xcsm:181
long prepare(String sql)
Definition Sqlite.xcsm:247
static const int SYNCHRONOUS_FULL
Definition Sqlite.xcsm:196
int enableSycnhronous(int n)
Definition Sqlite.xcsm:200
Sql.Statement createStatement() override
Definition Sqlite.xcsm:173
Sql.PreparedStatement prepareStatement(String sql) override
Definition Sqlite.xcsm:169
void setOption(int opt, Object option) override
Definition Sqlite.xcsm:149
String getError() override
Definition Sqlite.xcsm:160
int rollback()
Definition Sqlite.xcsm:216
static bool registried
Definition Sqlite.xcsm:129
String generateErrorText(long herr, String fallback)
Definition Sqlite.xcsm:220
int get_changes()
Definition Sqlite.xcsm:243
Definition String.x:5
float parseFloat()
int length()
bool equals(String)
Definition xsql.xcs:3