导航:首页 > 软件知识 > 如何在c程序中新建数据库数据表

如何在c程序中新建数据库数据表

发布时间:2024-11-03 07:22:47

❶ 怎么在VC++中用ADO创建数据库

VC++中使用ADO方式操作ACCESS数据库是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,即使你对OLEDB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本文详细地介绍在VisualC++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码。为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到这个test。mdb。程序编译运行后的效果一所示:
一、实现方法
万事开头难,任何一种新技术对于初学者来说最重要的还是"入门",掌握其要点。让我们来看看ADO数据库开发的基本流程吧!它的基本步骤如下:
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
下面我们将详细介绍上述步骤并给出相关代码。
1、COM库的初始化
我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:
BOOLCADOTest1App::InitInstance()
{
AfxOleInit();
。。。。。。
}
2、用#import指令引入ADO类型库
为了引入ADO类型库,需要在项目的stdafx。h文件中加入如下语句:
#import"c:\programfiles\commonfiles\system\ado\msado15。dll"
no_namespacerename("EOF","adoEOF")
这一语句有何作用呢?其最终作用同我们已经十分熟悉的#include类似,编译的时候系统会为我们生成msado15。tlh,ado15。tli两个C++头文件来定义ADO库。
需要读者朋友注意的是:您的开发环境中msado15。dll不一定在这个目录下,请按实际情况修改;在编译的时候可能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告:msado15。tlh(405):warningC4146:,resultstillunsigned。
3、创建Connection对象并连接数据库
为了首先我们需要添加一个指向Connection对象的指针_ConnectionPtrm_pConnection,下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉:
BOOLCADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULThr;
try
{
hr=m_pConnection。CreateInstance("ADODB。Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft。Jet。OLEDB。4。0;
DataSource=test。mdb","","",adModeUnknown);///连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
//需要改为:Provider=Microsoft。Jet。OLEDB。3。51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage。Format("连接数据库失败!\r\n错误信息:%s",e。ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
在这段代码中我们是通过Connection对象的Open方法来进行连接数据库的,下面是该方法的原型:
HRESULTConnection15::Open(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,longOptions);
上述函数中参数ConnectionString为连接字串;参数UserID是用户名;参数Password是登陆密码;参数Options是连接选项,用于指定Connection对象对数据的更新许可权,一般情况下Options可以是如下几个常量:
adModeUnknown:缺省。当前的许可权未设置

❷ C中使用MySQL数据库的基本操作cpp使用mysql

C中使用MySQL数据库的基本操作
MySQL是一种常用的关系型数据库管理系统,在许多应用程序中被广泛使用。在C语言中,我们可以使用MySQL的C API来与数据库进行交互。本文将介绍MySQL数据库的基本操作,包括连接数据库、执行查询和更新操作。
一、连接MySQL数据库
在C程序中连接MySQL数据库的步骤如下:
1. 引入头文件和链接库:
#include
#pragma comment(lib, “libmysql.lib”)
2. 获取连接句柄:
MYSQL *conn;
conn = mysql_init(NULL);
3. 建立连接:
const char *host = “localhost”;
const char *user = “root”;
const char *password = “password”;
const char *database = “mydb”;
unsigned int port = 3306;
if (!mysql_real_connect(conn, host, user, password, database, port, NULL, 0)) {
fprintf(stderr, “%s\n”, mysql_error(conn));
return 1;
}
如果连接失败,则会输出错误信息并退出程序。
二、执行查询操作
查询MySQL数据库中的记录,需要执行以下步骤:
1. 构造查询语句:
const char *query = “SELECT * FROM mytable”;
2. 执行查询操作:
int ret;
ret = mysql_query(conn, query);
if (ret != 0) {
fprintf(stderr, “Error %u: %s\n”, mysql_errno(conn), mysql_error(conn));
return 1;
}
3. 获取查询结果:
MYSQL_RES *result;
result = mysql_store_result(conn);
if (result == NULL) {
fprintf(stderr, “Error %u: %s\n”, mysql_errno(conn), mysql_error(conn));
return 1;
}
4. 遍历查询结果:
MYSQL_ROW row;
unsigned int num_fields;
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)) != NULL) {
for (unsigned int i = 0; i
printf(“%s “, row[i] ? row[i] : “NULL”);
}
printf(“\n”);
}
遍历查询结果时,可以通过mysql_fetch_row函数获取一行数据,再通过遍历数组输出每一列的数据。
三、执行更新操作
更新MySQL数据库中的记录,需要执行以下步骤:
1. 构造更新语句:
const char *update = “UPDATE mytable SET name=’new name’ WHERE id=1”;
2. 执行更新操作:
int ret;
ret = mysql_query(conn, update);
if (ret != 0) {
fprintf(stderr, “Error %u: %s\n”, mysql_errno(conn), mysql_error(conn));
return 1;
}
3. 获取更新结果:
unsigned long num_rows;
num_rows = mysql_affected_rows(conn);
printf(“%lu rows affected\n”, num_rows);
通过mysql_affected_rows函数获取更新的记录数,并输出结果。
四、断开连接
在程序结束时,需要断开与MySQL数据库的连接。可以执行以下步骤:
mysql_close(conn);
以上就是C语言中使用MySQL数据库的基本操作。通过这些操作,可以完成MySQL数据库的常规操作,如查询、更新、删除等。

❸ 新建Oracle数据库的3种方法

以下是对新建Oracle数据库的三种方法进行了详细的分析介绍 需要的朋友可以过来参考下

通过运行Oracle Database Configuration Assistant 创建 配置 或删除数据库(也可在命令行下输入dbca) 用命令行的方式建立数据库 通过运行自定义的批处理脚本(或create_ORACLE_SID bat(create_ORACLE_SID sql))来创建 配置 或删除数据库

详述 通过运行Oracle Database Configuration Assistant 创建 配置 或删除数据库 建议不熟悉创建过程的DBA使用该方法 只需要根据选项“下一步”进行配置 最后生成数据库的创建脚本(建议保留) 或者直接创建数据库 优点 GUI方法使用方便 缺点 不过创建过程有些慢

用命令行的方式建立数据库

复制代码 代码如下: CONNECT / AS SYSDBA STARTUP PFILE= C:oracleadmininit_testorcl ora NOMOUNT; CREATE DATABASE testOrcl DATAFILE /u /oracle/testOrcl/system dbf SIZE M LOGFILE GROUP ( /u /oracle/testOrcl/redo a log /u /oracle/testOrcl/redo b log ) SIZE K GROUP ( /u /oracle/testOrcl/redo a log /u /oracle/testOrcl/redo b log ) SIZE K CHARACTER SET ZHS CGB ;

将数据库直接从未建置状态转换到打开状态 ALTER DATABASE OPEN;

删除数据库(Dropping a Database) SPOOL C:DROP_DATABASE BAT SELECT DEL ||NAME 删除数据库相关数据文件 FROM V$DATAFILE; SELECT DEL ||MEMBER 删除数据重构日志文件 FROM V$LOGFILE; SPOOL OFF;

优点 可以熟悉创建指令 创建原理 缺点 配置简单 要求熟记命令行指令 通过运行自定义的批处理或SQL脚本(create_ORACLE_SID bat或create_ORACLE_SID sql)来创建

复制代码 代码如下: create_ORACLE_SID bat set ORACLE_SID= ORACLE_SID del C:ORACLE IdatabasepwdORACLE_SID ora C:ORACLE Ibinoradim new sid ORACLE_SID intpwd oracle startmode manual pfile C:ORACLE IadminORACLE_SIDpfileinit ora C:ORACLE Ibinsvrmgrl @C:_SIDrun sql C:ORACLE Ibinsvrmgrl @C:_SIDrun sql C:ORACLE Ibinoradim edit sid ORACLE_SID startmode auto ORACLE_SIDrun sql spool C:ORACLE IadminORACLE_SIDcreatecreatedb set echo on connect INTERNAL/oracle startup nomount pfile=C:ORACLE IadminORACLE_SIDpfileinit ora CREATE DATABASE ORACLE_SID LOGFILE C:ORACLE IoradataORACLE_SIDredo log SIZE K C:ORACLE IoradataORACLE_SIDredo log SIZE K MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY DATAFILE C:ORACLE IoradataORACLE_SIDsystem dbf SIZE M REUSE MAXDATAFILES MAXINSTANCES CHARACTER SET ZHT BIG NATIONAL CHARACTER SET ZHT BIG ; spool off ORACLE_SIDrun sql spool C:ORACLE IadminORACLE_SIDcreatecreatedb set echo on connect INTERNAL/oracle ALTER DATABASE DATAFILE C:ORACLE IoradataORACLE_SIDsystem dbf AUTOEXTEND ON; CREATE ROLLBACK SEGMENT SYSROL TABLESPACE "SYSTEM" STORAGE (INITIAL K NEXT K); ALTER ROLLBACK SEGMENT "SYSROL" ONLINE;

Linux平台下Oracle的操作

下面对Oracle的操作都是在Linux平台下进行的! su Oracle sqlplus /logon connect test/test assysdba(test/test是Oracle用户和密码) startup lsnrctl 首选启动数据库 su Oracle sqlplus /nolog conn /as sysdba startup 然后启动监听: 进入/opt/Oracle/proct/ /bin/ lsnrctl start 运行shudown命令关闭数据库 [Oracle@wing /Oracle]$ sqlplus" / as sysdba" //以sysdba用户登陆数据库 SQL> shutdown

启动Oracle i 数据库 [Oracle@wing bin]$ sqlplus " /as sysdba" SQL> startup

启动Oracle i监听程序 Oracle的监听程序主要是为客户端的连接提供接口 [Oracle@wing bin]$ lsnrctl LSNRCTL> start

关闭Oracle i监听程序 [Oracle@wing bin]$ lsnrctl LSNRCTL> stop 先看看Oracle_SID 环境变量设置是否正确 i $ sqlplus /nolog SQL> connect / as sysdba SQL> startup $ lsnrctl start i $ svrmgrl SVRMGR> connect internal SVRMGR> startup $ lsnrctl start 在哪里报错?? 一般只要设置这 处就好了~ /etc/oratab ora :/Oracle/app/Oracle/proct/ :Y /etc/inittab oralce: :wait:/bin/su Oracle c /Oracle/app/Oracle/proct/ /bin/lsnrctl start Oracle: :wait:/bin/su Oracle c /Oracle/app/Oracle/proct/ /bin/dbstart

启动步骤 su Oracle [Oracle@websvr Oracle]$ sqlplus /nolog SQL> connect / as sysdba SQL> startup SQL> quit [Oracle@websvr Oracle]$ lsnrctl start 可用 [Oracle@websvr Oracle]$ lsnrctl status 查看监听是否已经启动

lishixin/Article/program/Oracle/201311/19064

❹ 用C或C++编程实现数据库的查询,添加,删除,修改功能。

一个教材管理系统,给你参考下
void shumingsearch(struct book *head) /*按教材名称查找*/
{ struct book *p;
char name[20];
int c;
if(head==NULL) {printf("未打开任何文件");getchar();return;}
printf("1,查找专业 2,查找教材名称:");
scanf("%d",&c);
getchar();
if(c==2)
printf("请输入要查找的教材名称:");

else printf("请输入要查找的专业:");
gets(name);
p=head;
do{ if(c==2)
if(strcmp(p->shuming,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);

}
if(c==1)
if(strcmp(p->zhuanye,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);

}
p=p->next;
}while(p!=NULL);
printf("查找完成");
return;
}

struct book *add(struct book *head) /*增加记录*/
{ struct book *p,*e,*f,*h;
if(head==NULL) {printf("未打开任何文件");getchar(); return NULL;}
h=f=e=head;

p=(struct book *)malloc(sizeof(struct book));
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);

if(strcmp(f->number,p->number)>0) { p->next=f;h=p;printf("\n添加成功");return h;}
if(f->next==NULL) { f->next=p;p->next=NULL;printf("\n添加成功");return h;}
do{
if(f->next!=NULL)
if(strcmp(f->number,p->number)>0)
{
e->next=p;p->next=f;printf("\n添加成功");return h;
}

if(f->next==NULL)
{
f->next=p;
p->next=NULL;
printf("\n添加成功");
return h;
}

f=f->next;
e=e->next;
}while(1);
}

struct book *delet(struct book *head) /*删除记录*/
{ struct book *p,*e;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要删除的教材编号:");
scanf("%s",num);
p=e=head;
if(strcmp(p->number,num)==0) { head=head->next; print(head);return head;}
else p=p->next;
do{

if(strcmp(p->number,num)==0)
{
if(p->next!=NULL)
e->next=p->next;
if(p->next==NULL) e->next=NULL;
print(head);
return head;
}
p=p->next;
e=e->next;
}while(p!=NULL);
printf("搜索完毕,未找到该记录");
return head;
}

struct book *change(struct book *head) /*修改记录*/
{ struct book *p;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要修改的教材编号:");
scanf("%s",num);
getchar();
p=head;
do{
if(strcmp(p->number,num)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);
printf("修改成功");
return head;
}
p=p->next;
}while(p!=NULL);
printf("未找到要修改的记录");
return head;
}

int mima()
{ FILE *fp;
char mima1[20],mima2[20];

if((fp=fopen("mima","r"))==NULL)

{ printf("尚未设置密码请输入:");
scanf("%s",mima1);
printf("请再次输入密码:");
scanf("%s",mima2);
if(strcmp(mima1,mima2)!=0) { printf("两次密码不一样");return 0;}
else {
fp=fopen("mima","w");
fprintf(fp,"%s",mima1);
printf("密码设置成功");
return 1;
}
}

printf("请输入初始化密码:");
scanf("%s",mima1);
fscanf(fp,"%s",mima2);
if(strcmp(mima1,mima2)==0)
{
printf("密码正确");
printf("请输入要删除的文件名:");
scanf("%s",mima1);
if(remove(mima1)==0)
{
printf("删除成功");
getchar();
return 1;
}
else {
printf("删除失败,请检查是否存在该文件或路径是否正确");
getchar();
return 0;
}
}
else {
printf("密码错误");
getchar();
return 0;
}

}
void main()
{
struct book *head=NULL;
char i;
getch();

system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");
printf("m--菜单 h--帮助");
printf("\n请输入命令:");
i=getch();
if(i=='h')
{ printf("\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)");
getch();
break;
}
if(i=='m')
break;
system("cls");
}while(i!='m'||i!='h');

system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");

printf("┌————-———┐\n");
printf("│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录 │\n│s,初始化系统 │\n│e,退出系统 │\n");
printf("└———————-┘\n");
printf("\n请输入功能编号:");
i=getch();
system("cls");
switch(i)
{
case '1': head=creat();save(head);break;
case '2': print(head);break;
case '3': head=openfile();break;
case '4': system("cls");
printf("┌————-———┐\n");
printf("│1,增加一个记录│\n");
printf("│2,删除一个记录│\n");
printf("│3,修改一个记录│\n");
printf("└———————-┘\n");
i=getch();
switch(i)
{
case '1':
head=add(head);break;
case '2':
head=delet(head);break;
case '3': head=change(head);break;
default: break;
}
break;
case '5': save(head);break;
case '6': shumingsearch(head);break;
case 's': mima();break;
case 'e': exit(0);
default :break;
}
system("cls");
}while(1);
}

阅读全文

与如何在c程序中新建数据库数据表相关的资料

热点内容
电子商务数据传输方式有哪些 浏览:669
广州最大金鱼市场搬到哪里了 浏览:715
中介个人信息从哪里 浏览:733
针对不同阶层如何打造旅游产品 浏览:380
淘宝测款数据不好怎么办 浏览:328
交易技术哪个好 浏览:48
创世蓝天技术有什么优势 浏览:146
交易流水账单怎么删除 浏览:883
ps怎么给产品拍照 浏览:716
系统技术升级中请稍后注册什么意思 浏览:499
农副产品加工品如何开发票 浏览:458
飞机票怎么免费代理 浏览:691
转账多少时间收到信息 浏览:267
餐饮代理记账怎么做 浏览:208
苹果历史记录和数据都包括哪些 浏览:71
怎么查最近三个月的二手房交易 浏览:788
征途2交易令怎么收银子 浏览:373
现货交易操盘手是哪个专业 浏览:256
如何选股票交易计划 浏览:651
日申季赎的理财产品什么意思 浏览:738