游戏开发论坛

 找回密码
 立即注册
搜索
查看: 869|回复: 0

pro_c编程如何访问数据 wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2009-3-8 12:08:00 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define USERNAME "dbaccopr"
#define PASSWORD "dbaccopr200606"

/*通讯区说明*/
EXEC SQL INCLUDE sqlca;
/* 说明段 */
EXEC SQL BEGIN DECLARE SECTION;
        VARCHAR username[20];
        VARCHAR password[20];
EXEC SQL END DECLARE SECTION;



void sqlerror();

int main()
{
        /*内部说明段*/
        EXEC SQL BEGIN DECLARE SECTION;
        char stu_no[9];
        char stu_name[20];
        int stu_age;
        char stu_dept[20];
        EXEC SQL END DECLARE SECTION;
       
        /*VARCHAR stu_no[9];*/
        /*VARCHAR stu_name[20];*/
        /*VARCHAR stu_dept[20];*/
        char* db_link_name = "LINK_CRMA_ACCOPR";
        int total = 0;
        char* db_name = "CENDEV";
        /*登录到数据库*/
        strcpy(username.arr, USERNAME);
        username.len = strlen(username.arr);
        strcpy(password.arr, PASSWORD);
        password.len = strlen(password.arr);
       
        EXEC SQL WHENEVER SQLERROR do sqlerror();
        EXEC SQL CONNECT :username IDENTIFIED BY :password AT: db_link_name USING: db_name;
        printf("\nConnected to ORACLE as user: %s\n", username.arr);
       
        while(1)
        {
               
                printf("\nEnter your student numberNULL is quit)");
                /*scanf("%s", stu_no.arr);
                stu_no.len = strlen(stu_no.arr);*/
                scanf("%s", stu_no);
                if(strlen(stu_no) == 0)
                        break;
               
                printf("Enter your name:");
                /*scanf ("%s",stu_name.arr);
                stu_name.len = strlen(stu_name.arr);*/
                scanf ("%s",stu_name);
               
                printf("Enter your age:");
                scanf ("%d",stu_age);
                /*stu_age.len = strlen(stu_age.arr);*/
               
                printf("Enter your dept:");
                /*scanf ("%s",stu_dept.arr);
                stu_dept.len = strlen(stu_dept.arr);*/
                scanf ("%s",stu_dept);
               
                /*插入一行*/
                EXEC SQL INSERT INTO student
                    (sno,sname,sage,sdept)
                    VALUES (:stu_no, :stu_name, :stu_age, :stu_dept);
                EXEC SQL COMMIT WORK;
                /*printf("Student %s is add.\n",stu_name.arr);*/
                printf("Student %s is add.\n",stu_name);
                total++;
        }
       
        printf("Insert the %d student\n", total);
       
        /*退出数据库*/
        EXEC SQL COMMIT WORK RELEASE;
        /*exit();*/
        return 0;
}

void sqlerror()
{
        EXEC SQL WHENEVER SQLERROR continue;
        printf("\nORACLE error detected:\n");
        /*打印错误文本*/
        printf("\n%.70s\n", sqlca.sqlerrm.sqlerrmc);
        /*回滚事务*/
        EXEC SQL ROLLBACK RELEASE;
        /*exit(1);*/
        return ;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 04:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表