数据库系统概论(第5版) P262 例8.12
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
using namespace std; #define SNO_LEN 30
#define NAME_LEN 50
#define DEPART_LEN 100
#define SSEX_LEN 5 int main()
{
SQLHENV kinghenv, serverhenv;
SQLHDBC kinghdbc, serverhdbc;
SQLHSTMT kinghstmt, serverhstmt;
SQLRETURN ret;
SQLCHAR sName[NAME_LEN], sDepart[DEPART_LEN], sSex[SSEX_LEN], sSno[SNO_LEN];
SQLINTEGER sAge;
SQLINTEGER cbAge = , cbSno = SQL_NTS, cbSex = SQL_NTS, cbName = SQL_NTS, cbDepart = SQL_NTS; ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &kinghenv);
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv);
ret = SQLSetEnvAttr(kinghenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, );
ret = SQLSetEnvAttr(serverhenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, ); ret = SQLAllocHandle(SQL_HANDLE_DBC, kinghenv, &kinghdbc);
ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, &serverhdbc); SQLWCHAR *ServerName1 = (SQLWCHAR *)"KingbaseES ODBC";
SQLWCHAR *UserName1 = (SQLWCHAR *)"SYSTEM";
SQLWCHAR *Authentication1 = (SQLWCHAR *)"MANAGER";
ret = SQLConnect(kinghdbc, ServerName1, SQL_NTS, UserName1, SQL_NTS, Authentication1, SQL_NTS);
if (!SQL_SUCCEEDED(ret)) {
cout << "SQLConnect KingbaseES ODBC Failed" << endl;
return -;
} SQLWCHAR *ServerName2 = (SQLWCHAR *)"SQLServer";
SQLWCHAR *UserName2 = (SQLWCHAR *)"sa";
SQLWCHAR *Authentication2 = (SQLWCHAR *)"sa";
ret = SQLConnect(kinghdbc, ServerName2, SQL_NTS, UserName2, SQL_NTS, Authentication2, SQL_NTS);
if (!SQL_SUCCEEDED(ret)) {
cout << "SQLConnect SQLServer Failed" << endl;
return -;
} ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, &kinghstmt);
ret = SQLSetStmtAttr(kinghstmt, SQL_ATTR_ROW_BIND_TYPE, (SQLPOINTER)SQL_BIND_BY_COLUMN, SQL_IS_INTEGER);
ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt); ret = SQLPrepare(serverhstmt, (SQLWCHAR *)"INSERT INTO STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES(?,?,?,?,?)", SQL_NTS);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
ret = SQLBindParameter(serverhstmt, , SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, SNO_LEN, , sSno, , &cbSno);
ret = SQLBindParameter(serverhstmt, , SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, NAME_LEN, , sName, , &cbName);
ret = SQLBindParameter(serverhstmt, , SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, , , sSex, , &cbSex);
ret = SQLBindParameter(serverhstmt, , SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, , , &sAge, , &cbAge);
ret = SQLBindParameter(serverhstmt, , SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, DEPART_LEN, , sDepart, , &cbDepart);
} ret = SQLExecDirect(kinghstmt, (SQLWCHAR *)"SELECT * FROM STUDENT", SQL_NTS);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
ret = SQLBindCol(kinghstmt, , SQL_C_CHAR, sSno, SNO_LEN, &cbSno);
ret = SQLBindCol(kinghstmt, , SQL_C_CHAR, sName, NAME_LEN, &cbName);
ret = SQLBindCol(kinghstmt, , SQL_C_CHAR, sSex, SSEX_LEN, &cbSex);
ret = SQLBindCol(kinghstmt, , SQL_C_LONG, &sAge, , &cbAge);
ret = SQLBindCol(kinghstmt, , SQL_C_CHAR, sDepart, DEPART_LEN, &cbDepart);
} while ((ret = SQLFetch(kinghstmt)) != SQL_NO_DATA_FOUND)
{
if (ret == SQL_ERROR) printf("Fetch error\n");
else ret = SQLExecute(serverhstmt);
} SQLFreeHandle(SQL_HANDLE_STMT, kinghstmt);
SQLDisconnect(kinghdbc);
SQLFreeHandle(SQL_HANDLE_DBC, kinghdbc);
SQLFreeHandle(SQL_HANDLE_ENV, kinghenv);
SQLFreeHandle(SQL_HANDLE_STMT, serverhstmt);
SQLDisconnect(serverhdbc);
SQLFreeHandle(SQL_HANDLE_DBC, serverhdbc);
SQLFreeHandle(SQL_HANDLE_ENV, serverhenv); return ;
}
数据库系统概论(第5版) P262 例8.12的更多相关文章
- 数据库系统概论——Chap. 1 Introduction
数据库系统概论--Introduction 一.数据库的4个基本概念 数据(data):数据是数据库中存储的基本单位.我们把描述事物的符号记录称为数据.数据和关于数据的解释是不可分的,数据的含义称为数 ...
- 数据库系统概论(2)——Chap. 2 关系数据库基础
数据库系统概论(2)--Chap.2 关系数据库基础 一.关系数据结构及形式化定义 1.关系 关系模型的数据结构只包含单一的数据结构--关系.在关系模型中,现实世界的实体及实体间的各种联系均用单一的结 ...
- 数据库系统概论(1)——Chap. 1 Introduction
数据库系统概论--Introduction 一.数据库的4个基本概念 数据(data):数据是数据库中存储的基本单位.我们把描述事物的符号记录称为数据.数据和关于数据的解释是不可分的,数据的含义称为数 ...
- 数据库系统概论 SQL
--(一)创建教材学生-课程数据库 create database s_c go use s_c go --建立“学生”表Student,学号是主码,姓名取值唯一. CREATE TABLE Stud ...
- Java进阶知识13 Hibernate查询语言(HQL),本文以hibernate注解版为例讲解
1.简单概述 1.1. 1) SQL:面向的是数据库 select * from tableName;2) HQL查询(Hibernate Query language): hibernate 提供的 ...
- SQLServer安装步骤(2012版为例)
提示:SQLServer安装较为耗时,请确保时间充足. 图文如果无法正常显示,请移步 SQLServer安装步骤 第一步:下载 下载地址:https://www.microsoft.com/zh-cn ...
- Java 基础入门随笔(10) JavaSE版——单例设计模式
设计模式:对问题行之有效的解决方式.其实它是一种思想. 1.单例设计模式. 解决的问题:就是可以保证一个类在内存中的对象唯一性.(单个实例) 使用单例设计模式需求:必须对于多个程序使用同一个配置信息对 ...
- 数据库系统概论——SQL
[toc] 一.SQL查询语言概览 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 基本表 本身独立存在的表 SQL中一个 ...
- 数据库系统概论——从E-R模型到关系模型
E-R模型和关系模型都是现实世界抽象的逻辑表示 E-R模型并不被 DBMS直接支持,更适合对现实世界建模 关系模型是 DBMS直接支持的数据模型 基本 E-R图中的元素包括实体集.联系集.属性 椭圆框 ...
随机推荐
- 重新想象 Windows 8 Store Apps (44) - 多线程之异步编程: 经典和最新的异步编程模型, IAsyncInfo 与 Task 相互转换
[源码下载] 重新想象 Windows 8 Store Apps (44) - 多线程之异步编程: 经典和最新的异步编程模型, IAsyncInfo 与 Task 相互转换 作者:webabcd 介绍 ...
- 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件
[源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:w ...
- Java与线程
导语 我们知道,new一个thread,调用它的start的方法,就可以创建一个线程,并且启动该线程,然后执行该线程需要执行的业务逻辑, 那么run方法是怎么被执行的呢? Java线程和os线程 os ...
- svn的管理与维护要点—纯手工编写
由于在公司要维护阿里云的linux服务器,我们的svn服务器就安在阿里云上面.所以经常会涉及到svn的维护操作.离职的时候编写交接文档,刚好有充足的时间写一篇说明介绍,此说明纯原创,不是从网上复制,手 ...
- PHP simplexml_load_string 过滤<![CDATA[XXXX]]>
首先说说过滤<![CDATA[XXXX]]>干嘛用的. 这东西主要是防止XML里面嵌套HTML标签导致XML样式错乱的. 过滤很简单: $response = str_replace( a ...
- [TypeScript] JSON对象转TypeScript对象范例
[TypeScript] JSON对象转TypeScript对象范例 Playground http://tinyurl.com/nv4x9ak Samples class DataTable { p ...
- 推荐几个的chorme的扩展程序
下面来解释下这几个插件 (0)Context : 管理这些乱七八糟的扩展程序,插件用的时候,点开,不用的时候,关闭,这样可以降低游览器的负荷 (1)AngularJS Batarang : 测试ang ...
- MSCRM 2011 操作大全
CRM字段类型:货币:new Money(Decimal){SQL更新Money类型字段,需要同时更新_base字段,存在汇率差的时候值不同}查找:new EntityReference(object ...
- iOS仿京东分类菜单之UICollectionView内容
在上<iOS仿京东分类菜单实例实现>已经实现了大部分主体的功能,本文是针对右边集合列表进行修改扩展,使它达到分组的效果,本文涉及到的主要是UICollectionView的知识内容,左边列 ...
- TortoiseSVN使用简介(转)
TortoiseSVN使用简介 1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 ...