简单问题,解决后给分

pawly 2006-04-28 09:55:20
vb中如何建立一个dbf表,并同时建立几个中文字段
...全文
175 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2006-04-29
  • 打赏
  • 举报
回复
需求:本地没有dbf(也没有任何foxpro数据库),通过vb建立一个dbf文件(包含一些字段)
没有dbf怎么建立联接?
用ADO连接:
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\temp;Extended Properties=dbaSE 5.0;Persist Security Info=False'
sql:
create table ff (字段1 char(9),字段2 logical)
十豆三 2006-04-29
  • 打赏
  • 举报
回复
试试这个:

*将以下代码用V_FoxPro编译成可执行文件(CreatDbf.EXE)并带上VFP的运行库
PARAMETERS TableAndFields
CREATE TABLE &TableAndFields
CLOSE DATABASES ALL
RETURN


然后在VB中调用以上程序方法如下:

SHELL "path\CreatDbf.exe 'test (字段1 C(10),字段2 N(10,2))'"
dfwxj 2006-04-28
  • 打赏
  • 举报
回复
楼主走错门了,这个问题应该去VB版块
淡蓝冰 2006-04-28
  • 打赏
  • 举报
回复
(1)用CREATE TABLE命令
(2)在項目管理器中的data下,用new按鈕在數據庫下建立一個數據表,如果沒有數據庫,你就用new命令先建立一個數據庫,當然也可直接建立一個臨時表
scjpsz1860 2006-04-28
  • 打赏
  • 举报
回复
友情UP!:)
TERRYYRRET 2006-04-28
  • 打赏
  • 举报
回复
create table 表名 (字段名 类型(宽度),字段名2 (宽度),...)
wwwwb 2006-04-28
  • 打赏
  • 举报
回复
用ADO:
create table ff (字段1 char(9),字段2 logical)
pawly 2006-04-28
  • 打赏
  • 举报
回复
各位误会了,我是说用vb程序代码实现
淡蓝冰 2006-04-28
  • 打赏
  • 举报
回复
其實最簡單的就是你直接在項目管理器下面的data頁面下的先選中databases(數據庫)下按右邊的new按鈕就可新建數據庫,你在選中這個數據庫下的tables,再按new按鈕就可以新建一個數據表.
淡蓝冰 2006-04-28
  • 打赏
  • 举报
回复
CREATE DATABASE 命令
创建并打开一个数据库。
CREATE DATABASE [DatabaseName | ?]
参数
DatabaseName
指定要创建的数据库的名称。
如果 SAFETY 设为 ON,并且所指定的数据库和某一已存在的数据库有相同的名称和路径,Visual FoxPro 将显示一个警告对话框,提示您为数据库指定一个新的路径或名称。
?
显示“创建”对话框,在对话框中指定要创建的数据库名称。
备注
数据库文件的扩展名为 .DBC,关联的数据库备注文件的扩展名为 .DCT,关联的索引文件的扩展名为 .DCX。
不管 SET EXCLUSIVE 的设置如何,数据库都独占地打开。由于 CREATE DATABASE 创建并打开数据库,因而不必随后再发出 OPEN DATABASE 命令来打开数据库。
如果发出 CREATE DATABASE 时不带任何可选参数,将显示“创建”对话框,提示您指定数据库的名称。
示例
本示例创建了数据库 people,同时创建表 friends 并自动把它添加到数据库中。display tables 用来显示数据库中的表,而 display databases 用来显示数据库中表的信息。
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES && 显示数据库中的表
DISPLAY DATABASES && 显示表信息
pawly 2006-04-28
  • 打赏
  • 举报
回复
但我安装了foxpro环境
pawly 2006-04-28
  • 打赏
  • 举报
回复
TERRYYRRET(命运) :能不能给个例子,需求:本地没有dbf(也没有任何foxpro数据库),通过vb建立一个dbf文件(包含一些字段)
没有dbf怎么建立联接?
TERRYYRRET 2006-04-28
  • 打赏
  • 举报
回复
CREATE TABLE – SQL 命令

创建一个含有指定字段的表。

语法

CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE]
(FieldName1 FieldType [(nFieldWidth [, nPrecision
])]
[NULL | NOT NULL]
[CHECK lExpression1 [ERROR cMessageText1]]
[DEFAULT eExpression1]
[PRIMARY KEY | UNIQUE]
[REFERENCES TableName2 [TAG TagName1]]
[NOCPTRANS]
[, FieldName2 ...]
[, PRIMARY KEY eExpression2 TAG TagName2
|, UNIQUE eExpression3 TAG TagName3]
[, FOREIGN KEY eExpression4 TAG TagName4 [NODUP]
REFERENCES TableName3 [TAG TagName5]]
[, CHECK lExpression2 [ERROR cMessageText2]])
| FROM ARRAY ArrayName

参数

CREATE TABLE | DBF TableName1

指定要创建的表的名称。TABLE 和 DBF 选项作用相同。

NAME LongTableName

指定表的长名。因为长表名存储在数据库中,只有在打开数据库时才能指定长表名。
长名最多可包括 128 个字符,在数据库中可用来代替短名。

FREE

指定所创建的表不添加到数据库中。如果没有打开数据库则不需要 FREE。

(FieldName1 FieldType [(nFieldWidth [, nPrecision])]

分别指定字段名、字段类型、字段宽度和字段精度(小数位数)。
FieldType 是指定字段数据类型的单个字母。有些字段数据类型要求指定 nFieldWidth 或 nPrecision 或两者都要指定。
下表列出了 FieldType 的值及是否需要指定 nFieldWidth和 nPrecision。

FieldType nFieldWidth nPrecision 说明
C n – 宽度为 n 的字符字段
D – – 日期型
T – – 日期时间型
N n d 宽度为 n、有 d 位小数的数值型字段
F n d 宽度为 n、有 d 位小数的浮点数值型字段
I – – 整型
B – d 双精度型
Y – – 货币型
L – – 逻辑型
M – – 备注型
G – – 通用型

nFieldWidth 和 nPrecision 不适用于 D、T、I、Y、L、M、G 和 P 类型。对于 N、F 或 B 类型,若不包含 nPrecision,则 nPrecision 默认为零(没有小数位)。

NULL

在字段中允许 Null 值。

NOT NULL

在字段中不允许 Null 值。
如果省略了 NULL 或 NOT NULL,SET NULL 的当前设置将决定在字段中是否允许 Null 值。但是,如果省略 NULL 和 NOT NULL 而包含 PRIMARY KEY 或 UNIQUE 子句,SET NULL 的当前设置无效,字段默认为 NOT NULL。

CHECK lExpression1

指定字段的有效性规则。lExpression1 可以是用户自定义函数。请注意,当追加空记录时,就要检查有效性规则。如果有效性规则不允许在追加记录中有空字段值,则产生错误。

ERROR cMessageText1

指定当字段规则产生错误时,Visual FoxPro 显示的错误信息。只有当数据在浏览窗口或编辑窗口中做了修改时,才显示信息。

DEFAULT eExpression1

指定字段的默认值。eExpression1 的数据类型必须和字段的数据类型相同。

PRIMARY KEY

将此字段作为主索引。主索引标识名和字段名相同。

UNIQUE

将此字段作为一个候选索引。候选索引标识名和字段名相同。有关候选索引的详细内容,请参阅使用索引和《开发指南》的第七章“处理表”。

附注
候选索引(通过在 CREATE TABLE 或 ALTER TABLE-SQL 中包含 UNIQUE 选项来创建)和用 INDEX 命令的 UNIQUE 选项创建的索引不同。用 INDEX 命令的 UNIQUE 选项创建的索引允许重复索引关键字;候选索引不允许重复索引关键字。有关 UNIQUE 选项的其他内容,请参阅 INDEX 命令。

在主索引或候选索引字段中不允许 Null 值和重复记录。但是,如果为支持 Null 值的字段创建主索引或候选索引,Visual FoxPro 将不会产生错误。但是,如果试图把 Null 值或重复值输入到用作主索引或候选索引的字段中时,Visual FoxPro 将产生错误。

REFERENCES TableName2 [TAG TagName1]

指定建立永久关系的父表。如果省略 TAG TagName1,则使用父表的主索引关键字建立关系。如果父表没有主索引,则 Visual FoxPro 产生错误。
可包含 TAG TagName1,为父表建立一个基于现有索引标识的关系,索引标识名最多可包含 10 个字符。
父表不能是自由表。

NOCPTRANS

防止字符字段和备注字段转换到另一个代码页。如果要将表转换到其他代码页,则指定了 NOCPTRANS 的字段不转换。只能为字符字段和备注字段指定 NOCPTRANS。
下面的示例创建了表 MYTABLE,该表有两个字符字段和两个备注字段,第二个字符字段 CHAR2 和第二个备注字段 MEMO2 包含有防止转换的 NOCPTRANS。

CREATE TABLE mytable (char1 C(10), char2 C(10) NOCPTRANS,;
memo1 M, memo2 M NOCPTRANS)


PRIMARY KEY eExpression2 TAG TagName2

指定要创建的主索引。eExpression2 指定表中的任一个字段或字段组合。TAG TagName2 指定要创建的主索引标识的名称。索引标识名最多包含 10 个字符。
因为表只能有一个主索引,如已经创建了一个主索引字段,则命令中不能包含本子句。如果在 CREATE TABLE 中包含多个 PRIMARY KEY 子句,Visual FoxPro 将产生错误。

UNIQUE eExpression3 TAG TagName3

创建侯选索引。eExpression3 指定表中的任一字段或字段组合。但是,如果已经用一个 PRIMARY KEY 选项创建了一个主索引,则不能包含指定为主索引的字段。TAG TagName3 为要创建的候选索引标识指定了标识名。索引标识名最多可包含 10 个字符。
一个表可以有多个侯选索引。

FOREIGN KEY eExpression4 TAG TagName4 [NODUP]

创建一个外部索引(非主索引),并建立和父表的关系。eExpression4 指定外部索引关键字表达式,而 TagName4 为要创建的外部索引关键字标识指定名称。索引标识名最多可包含 10 个字符。包含 NODUP 来创建一个候选外部索引。
可以为表创建多个外部索引,但外部索引表达式必须指定表中的不同字段。

REFERENCES TableName3 [TAG TagName5]

指定建立永久关系的父表。可包含 TAG TagName5,为父表建立一个基于索引标识的关系。索引标识名最多可包含 10 个字符。如果省略 TAG TagName5,则默认用父表的主索引关键字建立关系。

CHECK eExpression2 [ERROR cMessageText2]

指定表的有效性规则。ERROR cMessageText2 指定当有效性规则执行时,Visual FoxPro 显示的错误信息。只有当数据在浏览窗口或编辑窗口中做了修改时,才显示该信息。

FROM ARRAY ArrayName

指定一个已存在的数组名称,数组中包含表的每个字段的名称、类型、精度以及宽度。数组的内容可用 AFIELDS( ) 函数来定义。

说明
新表在最低的可用工作区中打开,并可通过它的别名来访问。不管 SET EXCLUSIVE 的当前设置如何,新表都以独占方式打开。
如果打开了数据库,并且没有包含 FREE 子句,则新表添加到数据库中。不能创建和数据库中的表同名的新表。
如果数据库打开,CREATE TABLE-SQL 会要求独占使用数据库。若要以独占方式打开数据库,可在 OPEN DATABASE 中包含 EXCLUSIVE。
如果在创建新表时没有打开数据库,且包含了 NAME、CHECK、DEFAULT、FOREIGN KEY、PRIMARY KEY 或 REFERENCES 子句,则将产生错误。

请注意 CREATE TABLE 语法用逗号隔开各个 CREATE TABLE 选项。同样,NULL、NOT NULL、CHECK、DEFAULT、PRIMARY KEY 和 UNIQUE 子句必须放在包含列定义的圆括号之内。
TERRYYRRET 2006-04-28
  • 打赏
  • 举报
回复
CREATE CURSOR – SQL 命令

创建一个临时表。

语法

CREATE CURSOR dbf_name
(fname1 type [(precision [, scale])
[NULL | NOT NULL]
[CHECK lExpression [ERROR cMessageText]]
[DEFAULT eExpression]
[UNIQUE]
[NOCPTRANS]]
[, fname2 ...]])
| FROM ARRAY ArrayName

参数

dbf_name

指定要创建的临时表的名称。dbf_name 可以是一个名称表达式。

fname

指定临时表中的字段名。每个 fname 可以是一个名称表达式。

type

指定一个字母来表明字段的数据类型。

precision

指定由 fname 指定的字段的宽度。有些数据类型要求指定 precision。

scale

为指定的数据类型指定小数位数。有些数据类型要求指定 scale。
下表列出了可用的 type、precision 和 scale:

FieldType nFieldWidth nPrecision 说明
C n – 宽度为 n 的字符字段
D – – 日期型
T – – 日期时间型
N n d 有 d 个小数位、宽度为 n 的数值型字段。
F n d 有 d 个小数位、宽度为 n 的浮点数值型字段。
I – – 整型
B – d 双精度型
Y – – 货币型
L – – 逻辑型
M – – 备注型
G – – 通用型
P – – 图片

nFieldWidth 和 nPrecision 对 D、T、Y、L、M、G 和 P 类型不适用。对于 N、F 或 B 类型,若没有包含 nPrecision,则默认为零(没有小数位)。

NULL

在字段中允许 null 值。

NOT NULL

在字段中不允许 null 值。
如果省略了 NULL 和 NOT NULL,则 SET NULL 的当前设置决定字段中是否允许 null 值。但是,如果省略了 NULL 和 NOT NULL,并且包含 PRIMARY KEY 或 UNIQUE 子句,SET NULL 的当前设置无效,字段默认为 NOT NULL


CHECK lExpression

指定字段的有效性规则,lExpression 可以是用户自定义函数。

ERROR cMessageText

指定当字段有效性规则产生错误时,Visual FoxPro 显示的错误信息。只有在浏览窗口或编辑窗口中的数据改变时,才显示该信息。

DEFAULT eExpression

指定字段的默认值,eExpression 的数据类型必须和字段的数据类型相同。

UNIQUE

创建字段的候选索引。候选索引标识和字段同名。有关候选索引的详细内容,请参阅使用索引以及《开发指南》的第七章“处理表”。

附注
候选索引(通过包含 UNIQUE 选项所创建)和用 INDEX 命令中的 UNIQUE 选项创建的索引不同。用 INDEX 命令中的 UNIQUE 选项创建的索引允许重复的索引关键字,候选索引不允许重复的索引关键字。

用作候选索引的字段中不允许有 null 值和重复记录。但是,如果为支持 null 值的字段创建候选索引,Visual FoxPro 并不产生错误。如果试图在使用候选索引的字段中输入 null 值或重复值,Visual FoxPro 将产生错误。

NOCPTRANS

防止字符字段和备注字段转换到不同的代码页。如果临时表转换到其他代码页,那么,指定了 NOCPTRANS 的字段并不转换。只能对字符字段和备注字段指定 NOCPTRANS。
下面的示例创建了临时表 MYCURSOR,包含有两个字符字段和两个备注字段。第二个字符字段 CHAR2 和该表中第二个备注字段 MEMO2 包含了 NOCPTRANS 来防止转换。

CREATE CURSOR mycursor (char1 C(10), char2 C(10) NOCPTRANS,;
memo1 M, memo2 M NOCPTRANS)


FROM ARRAY ArrayName

指定一个已存在数组的名称,其中包含有临时表的每个字段的名称、类型、精度和宽度。有关数组内容的正确格式,请参阅 AFIELDS( )。

说明
CREATE CURSOR 创建了一个在被关闭之前一直存在的临时表。用 CREATE CURSOR 创建的临时表可象其他表一样操作——可进行浏览和索引,也能追加和修该记录。
临时表在最低的可用工作区中打开,可以通过它的别名来访问它。临时表中的每个字段均由名称、类型、精度和宽度定义。这些定义可从命令本身或从数组中获得。不管 SET EXCLUSIVE 的设置如何,临时表都是独占地打开。
pawly 2006-04-28
  • 打赏
  • 举报
回复
woxiangfang(小黑黑脸):
新建一个库或临时表,语法怎样?谢

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧