lr链接数据笔记

  
 <代码>
  视图plaincopy clipboardprint吗?/*需要的表结构如下
  创建表“test_data”(
  order_id的BIGINT无符号NOT NULL评论的订单号码。必须是唯一的。”
  “状态”BOOL NOT NULL默认“0”评论“是否数据被使用。值为0时表示假的。”
  date_used DATETIME空评论的日期/时间数据使用。,
  独特的(
  “order_id”
  )
  )引擎=innodb评论=癓oadRunnertestdata”;
  */行动()
  {
  int rc;
  int db_connection;//数据库连接
  int query_result;//查询结果集MYSQL_RES
  char * * result_row;//查询的数据衕
  
  char *服务器=發ocalhost”;
  char *用户=案?
  char *密码=" 123456 ";
  char *数据库=安馐浴?
  int port=3306;
  int unix_socket=零;
  int旗帜=0;//找到libmysql.dll的所在位置。
  rc=lr_load_dll (“C: \ \程序文件\ \ MySQL \ \ MySQLServer5.1 \ \ bin \ \ libmysql.dll”);
  如果(rc !=0) {
  lr_error_message(“无法加载libmysql.dll”);
  lr_abort ();
  }//创建MySQL对象
  db_connection=mysql_init(空);
  如果(db_connection==NULL) {
  lr_error_message(“内存不足”);
  lr_abort ();
  }//连接到MySQL数据库
  rc=mysql_real_connect (db_connection、服务器、用户、密码、数据库端口,unix_socket,旗帜);
  如果(rc==NULL) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }//向数据库插入数据//此处的{ORDER_ID}是一个参数,简单测试时可以用一个常数代替
  lr_save_string (lr_eval_string(“插入test_data (order_id)值({order_id})”),“paramInsertQuery”);
  rc=mysql_query (db_connection lr_eval_string (" {paramInsertQuery} "));
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }//从数据库读取一个数据并显示
  rc=mysql_query (db_connection”,选择从test_data order_id状态是假的限制1 ");
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }
  query_result=mysql_use_result (db_connection);
  如果(query_result==NULL) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }//如果结果集包含多行数据,需要多次调用mysql_fetch_row直到返回零
  result_row=(char * *) mysql_fetch_row (query_result);
  如果(result_row==NULL) {
  lr_error_message(“没有期望结果集是空的”);
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }//保存参数,用于删除这行数据
  lr_save_string (result_row [0],“paramOrderID”);
  lr_output_message(“订单ID是:% s lr_eval_string (" {paramOrderID} "));
  mysql_free_result (query_result);//在事务里更新一行数据,需要用InnoDB引擎
  rc=mysql_query (db_connection,“开始”);//启动事务
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }//使用“更新”锁住要更新的数据行
  rc=mysql_query (db_connection”,选择从test_data order_id状态是假的限制1更新”);
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }
  query_result=mysql_use_result (db_connection);
  如果(query_result==NULL) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }
  result_row=(char * *) mysql_fetch_row (query_result);
  如果(result_row==NULL) {
  lr_error_message(“没有查询到结果”);
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }
  lr_save_string (result_row [0],“paramOrderID”);
  lr_output_message(“订单ID是:% s lr_eval_string (" {paramOrderID} "));
  mysql_free_result (query_result);
  lr_save_string (lr_eval_string(“更新test_data设置状态=TRUE, date_used=现在(),order_id={paramOrderID}”),“paramUpdateQuery”);
  rc=mysql_query (db_connection lr_eval_string (" {paramUpdateQuery} "));
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }
  rc=mysql_query (db_connection,“提交”);//提交事务
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }//再次查找数据,应该为空了,因为前面的事务更新了标志
  rc=mysql_query (db_connection”,选择从test_data order_id状态是假的限制1 ");
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }
  query_result=mysql_use_result (db_connection);
  如果(query_result==NULL) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }
  result_row=(char * *) mysql_fetch_row (query_result);
  如果(result_row==NULL) {
  lr_output_message(“如预期结果集是空的”);
  mysql_free_result (query_result);
  其他}{
  lr_error_message(“没有期望结果集包含任何行”);
  mysql_free_result (query_result);
  mysql_close (db_connection);
  lr_abort ();
  }//删除数据
  lr_save_string (lr_eval_string(“删除从test_data order_id={paramOrderID}”),“paramDeleteQuery”);
  rc=mysql_query (db_connection lr_eval_string (" {paramDeleteQuery} "));
  如果(rc !=0) {
  lr_error_message (“% s”, mysql_error (db_connection));
  mysql_close (db_connection);
  lr_abort ();
  }//释放MySQL资源
  mysql_close (db_connection);
  返回0;
  }/*需要的表结构如下
  创建表“test_data”(
  order_id的BIGINT无符号NOT NULL评论的订单号码。必须是唯一的。”
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

lr链接数据笔记