前端之家收集整理的这篇文章主要介绍了
otl 操作 sqlite3 简单例子,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用sqlite3作为ODBC,在VC6.0下试了以下程序没有问题,可以用#define ODBCVER 0x0250).
-
C/C++ code
-
#include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define OTL_ODBC // Compile OTL 4.0/ODBC
#define OTL_ODBC_UNIX 如果在Unix下使用UnixODBC,则需要这个宏
#define ODBCVER 0x0250
#include <otlv4.h> include the OTL 4.0 header file
otl_connect db; connect object void insert()
insert rows into table
{
open a stream with no implicit committing
otl_stream
o(1, stream buffer size should be set to 1
"insert into test_tab values(:f1<int>,:f2<char[31]>)",0)"> sql statement
db
);
char tmp[32];
for(int i=1;i<=100;++i){
sprintf(tmp,Name%d<<i<<tmp;
}
}
void update(const int af1)
{
otl_stream
o( buffer size
UPDATE test_tab "
SET f2=:f2<char[31]> WHERE f1=:f1<int> UPDATE statement
db
);
o<<Name changed"<<af1;
o<<otl_null()<<af1+1; set f2 to NULL
}
void select(int af1)
{
otl_stream i(50,0)"> buffer size may be > 1
select * from test_tab "
where f1>=:f11<int> "
and f1<=:f12<int>*2 SELECT statement
db
);
create select stream
int f1;
char f2[31];
i<<af1<<af1; Writing input values into the stream
while(!i.eof()){ while not end-of-data
i>>f1;
cout<<f1="<<f1<<,f2=";
i>>f2;
if(i.is_null())
cout<<NULL";
else
cout<<f2;
cout<<endl;
}
}
int main()
{
otl_connect::otl_initialize(); initialize ODBC environment try{
db.rlogon(UID=scott;PWD=tiger;DSN=firebird"); connect to ODBC
或者使用下面的连接语句方式。
db.rlogon("scott/tiger@firebird"); connect to ODBC,alternative format
of connect string
otl_cursor::direct_exec
(
db,0)">drop table test_tab disable OTL exceptions
); drop table create table test_tab(f1 int,f2 varchar(30))"
); create table
insert(); insert records into the table
update(10); update records in the table
select(8); select records from the table
}
catch(otl_exception& p){ intercept OTL exceptions
cerr<<p.msg<<endl; print out error message
cerr<<p.stm_text<<endl; print out sql that caused the error
cerr<<p.sqlstate<<endl; print out sqlSTATE message
cerr<<p.var_info<<endl; print out the variable that caused the error
}
db.logoff(); disconnect from the database return 0;
}
转自http://topic.csdn.net/u/20101110/22/d0f05ebb-446b-47ef-8a00-cb8e17155206.html
原文链接:https://www.f2er.com/sqlite/202029.html