接下来就是一行行读column了。
因为column有多个,所以我们需要写循环语句 while(...)
循环语句的结束条件是什么呢,读到什么时候column就算读完了呢?
当然是要么文件结束,要么读到‘)’啦。
所以我们可以开头这样写
fscanf(fp,"%s",buffer);
while (!feof(fp) && strcmp(buffer,")")) {
while循环中每读到一次column就创建一个column对象。填充好。
而且column结构设计的时候我用链表结构。所以还要把每次创建的column对象连起来。
//接下去开始读column内容
Column * current = NULL;
fscanf(fp,"%s",buffer);
while (!feof(fp) && strcmp(buffer,")"))
{
//每次循环先创建一个column对象
Column * column = (Column *)malloc(sizeof(Column));
//清空column
memset(column, 0, sizeof(Column));
//因为column是链表结构,所以必有一下几句 1)保留住链表头 2)把链表连起来 3)当前的指针往后移一个
if (t.columns == NULL) t.columns = column;
if (current!=NULL) current->next = column;
current = current->next;
链表结构的创建一定要记住!1)保留住链表头 2)把链表连起来 3)当前的指针往后移一个
好了。到现在为止CREATE最复杂的部分实现了以后。接下来我们就轻松了。只要一个个内容读,读完了1保存在新创建的column中就可以了。
t.columnCount++;
//第一次读应该读到 column name
strcpy(column->name, buffer);
//第二次读应该读到 column type(column length)
fscanf(fp,"%s",buffer);
getColumnTypeLength(buffer, &column->type, &column->length)==0;
//第三次可能读到NULL; 可能读到; 这两种都代表着可以为空
fscanf(fp,"%s",buffer);
if (strcmp(buffer,";")==0 || strcmp(strupr(buffer),"null;")==0)
column->allowNull = 1;
//第三次读也可能读到NOT,代表着不能为空
else if (stricmp(buffer,"not")==0)
{
//第四次读应该读到null;
fscanf(fp,"%s",buffer);
if (stricmp(buffer,"null;")) return 0;
column->allowNull = 0;
}
这样一个column就都算完成了。继续往下读,完成循环
//继续读应该读到下一行内容了
fscanf(fp,"%s",buffer);
}
return 1;
分享到:
相关推荐
原创Matlab通过ODBC的方式调用数据库-CreateSchema.m 以下内容为Matlab中文论坛会员,Godman原创。 如果需要转载,请联系Godman会员: 如有疑问可以邮件联系 tntuyh@163.com Godman 2009.3.30 晚 Good ...
致远OA A6 createMysql.jsp 数据库敏感信息泄露漏洞描述致远OA A6 存在数据库敏感信息泄露,攻击者可以通过访问特定的URL获取数据库账户以
数据库管理助手 功能:浏览,添加,编辑ACCESS数据库、MSSQL数据库、MYSQL数据库(要装MYSQL FOR ODBC驱动) 以及通过ODBC连接各种类型的数据库。并可对当前表进行快速查询,以及强大SQL语句执行功能, 使你完轻松...
可以直接创建数据库,CREATE TABLE [dbo].[student],CREATE TABLE [dbo].[records],CREATE TABLE [dbo].[bigclass],CREATE TABLE [dbo].[secclass],CREATE TABLE [dbo].[setting],CREATE TABLE [dbo].[recordstemp],...
DataBaseoffce databaseoffce = new DataBaseoffce(); 创建数据库 databaseoffce.createDatabas("csxhzsd", "c:");...内存数据库 专门针对于需要大量数据且查询次数多的情况下使用,请您多指点 作者 QQ 502905196
2创建数据库 语法格式:CREATE DATABASE [IF NOT EXISTS] db_name [CHARSET utf8] 参数说明 create database是系统命令。 IF NOT EXISTS 是可选项。是⼀个条件判断。如果不存在,则创建数据库。 db_name:是⾃定义...
android数据库例子(create,query,upgrade),见博客:http://blog.csdn.net/baidu_nod/article/details/38178109
数据库管理与应用 2.2.2 使用CREATE DATABASE语句创建数据库.pdf 学习资料 复习资料 教学资源
MySQL Create Database 创建数据库.docx
delphi给access数据库创建新表的方法 delphi给access数据库创建新表的方法
西北工业大学,软件学院,数据库实验,实验五,附ER图和说明 Create the complete ER schema for your E-Commerce database from the E-Commerce Project Description in the Appendix.
创建用户(以system用户登录) --创建用户,指定表空间 --PS:导入的dmp数据库文件的表空间一定要与导出的数据库的表空间一致 --所以这里要指定用户的表空间为hnust_data create user hnust_prd2 identified by ...
主要介绍了Sql Server 创建数据库脚本语句Create DATABASE的使用,需要的朋友可以参考下
语法:create database 数据库名; (1) 数据库名一般不可以是SQL中的关键字(如create 、database、where、between......) 如果非要使用关键字来命名,可以借助 ` ` : (2) 不可以存在同名的数据库: 当我们再次创建...
1、create schema [数据库名称] default character set utf8 collate utf8_general_ci;--创建数据库 采用create schema和create database创建数据库的效果一样。 2、create user '[用户名称]'@'%' identified by...
H2 数据库 内存数据库 安装 小型数据库 在内存中读取 速度快
4.理解和掌握SQL语言: 能够熟练地使用create/alter/drop语句创建、修改和删除数据库、基本表;能够使用insert语句;理解和掌握基本的Select语句。 二、实验要求: 理解和掌握create, alter, drop, insert, 以及...
附录 创建同步实训数据库sales:create database sales.sql
CREATE TABLE SCC( Grades CHAR(5), Num INT ) --存人数 INSERT INTO SCC(Grades,Num) VALUES('>90',0); INSERT INTO SCC(Grades,Num) VALUES('>80',0); INSERT INTO SCC(Grades,Num) VALUES('>70',0)
本源码是新手学习易语言数据库整理心得,老鸟飞过。使用易语言创建空白Access数据库(*.mdb),经搜索贴子并总结如下:。方法一:。打开一个对话框,然后输入要创建的数据库名称,选择好路径后保存。这是通用方法,...