otl 操作 sqlite3 简单例子

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Sqlite相关文章