| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1210 人关注过本帖
标题:有关项目,数据库和表操作题。
只看楼主 加入收藏
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
有关项目,数据库和表操作题。
怎么将一个新表添加到数据库中?
       做到一道将某表中的字段复制到一个新表中,这个我知道应该用   use 要复制的那个原表名
                                                                  copy to.新表名..for.某字段...
           可是复制好后,在设计器里找不到那个新表了,也就不知道如何把它添加到数据库了。。。。。
搜索更多相关主题的帖子: 数据库 如何 
2012-03-12 23:51
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:15 
add table 命令
示例 请参阅

在当前数据库中添加一个自由表。

语法

ADD TABLE TableName | ?
[NAME LongTableName]

参数
TableName

指定添加到数据库中的表的名称。

?

显示“打开”对话框,从中可以选择添加到数据库中的表。

NAME LongTableName

指定表的长名。长名可以包含 128 个字符,可用来取代扩展名为 .DBF 的短文件名。

说明

将表添加到数据库中后,可以象其他数据库表一样对该表进行操作。
表添加到数据库中后,就不再是自由表。但是使用 REMOVE TABLE 命令又可以使数据库中的任何一个表成为自由表。
要添加的表必须具备下列条件:

该表是有效的 .DBF 文件。
除非为表指定一个唯一的长名称,否则表不能与打开数据库中已有的表同名。
表不能同时放在另一个数据库中。使用 REMOVE TABLE 命令可把表从另一个数据库中移去。
要往其中加入表的数据库必须具备下列条件:

必须以独占方式打开。要想独占地打开一个数据库,请在使用 OPEN DATABASE 命令时加入 EXCLUSIVE 子句。
不包含在事务中。
2012-03-13 00:11
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
copy to 命令
示例 请参阅

用当前选定表的内容创建新文件。

语法

COPY TO FileName
[DATABASE DatabaseName [NAME LongTableName]]
[FIELDS FieldList
| FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[[WITH] CDX] | [[WITH] PRODUCTION]
[NOOPTIMIZE]
[[TYPE] [FOXPLUS | FOX2X | DIF | MOD
| SDF | SYLK | WK1 | WKS | WR1 | WRK | CVS | | XLS | XL5
| DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter]]]
[AS nCodePage]

参数

FileName

指定 COPY TO 要创建的新文件名。若文件名中不包含扩展名,则指定扩展名为文件类型的默认扩展名。若不指定文件类型,则 COPY TO 创建一个新的 Visual FoxPro 表,并且用默认扩展名 .DBF 指定表文件名。

DATABASE DatabaseName

指定要添加新表的数据库。

NAME LongTableName

指定新表的长名称。长名称最多可以包含到128 个字符并且可以在数据库中使用短文件名的地方使用它。

FIELDS FieldList

指定要复制到新文件的字段。若省略 FIELDS FieldLsit,则将所有字段复制到新文件。若要创建的文件不是表,则即使备注字段名包含在字段列表中,也不把备注字段复制到新文件。

FIELDS LIKE Skeleton

指定与所给字段梗概相匹配的原始表中的字段。使用 COPY TO 创建的新文件中包含 Skeleton。

FIELDS EXCEPT Skeleton

指定在 COPY TO 创建的新文件中包含除了与字段梗概 Skeleton 匹配的所有字段。

字段梗概 Skeleton 支持通配符。例如,要想在新文件中包含以字母A 和 P 开头的所有字段,可以使用下列代码:

COPY TO mytable FIELDS LIKE A*,P*

LIKE 子句可以和 EXCEPT 子句组合使用:

COPY TO mytable FIELDS LIKE A*,P* EXCEPT PARTNO*

Scope

指定要复制到新文件的记录范围。只有在范围内的记录才被复制。Scope 子句为:ALL、NEXT nRecord、RECORD nRecordNumber 和 REST。有关信息,请参阅帮助中的 Scope 子句。

FOR lExpression1

指定只复制逻辑条件 lExpression1 为“真”(.T.) 的记录到文件中。包含 FORlExpression1 可按条件复制记录,筛选出不想要的记录。

若 lExpression1 是可优化表达式,则 Rushmore 优化有 FOR lExpression1 子句的 copy to 命令。为获得最佳效果,可在 FOR lExpression1 子句中使用可优化表达式。

有关优化表达式的内容,请参阅稍后部分的 SET OPTIMIZE 命令和《Microsoft Visual FoxPro 6.0 中文版程序员指南》第十五章“优化应用程序”的“掌握 Rushmore 技术”。

WHILE lExpression2

指定一个条件,只有当逻辑表达式 lExpression2 为“真”(.T.) 时才复制记录。

[WITH] CDX | [WITH] PRODUCTION

创建一个与已有表的结构索引文件相同的新表结构索引文件。原始结构索引文件的标识和索引表达式被复制到新结构索引文件。CDX 等同于 PRODUCTION子句。

若不是复制到 Visual FoxPro 新表,则不要包含 CDX 或 PRODUCTION。

NOOPTIMIZE

使 COPY TO 的 Rushmore 优化无效。

有关详细内容,请参阅稍后部分的SET OPTIMIZE命令。

TYPE

若要创建的文件不是 Visual FoxPro 表,则指定该文件类型。指定文件类型时不必包含 TYPE 关键字。

FOXPLUS

Visual FoxPro 备注文件与 FoxBASE+ 备注文件有不同的结构。若 VisualFoxPro 源表包含备注字段,则包含 FOXPLUS 子句可创建一个能在FoxBASE+ 中使用的表。Visual FoxPro 备注字段不能包含二进制数据,因为FoxBASE+ 不支持备注字段中出现二进制数据。

FOX2X

创建能在 FoxPro for Windows、FoxPro for Macintosh 和 FoxPro for MS-DOS 的早期版本(2.0,2.5 和 2.6 版)中打开的新表。

对于数值型、浮点型、整型、双精度型和货币型字段,源表中的 null 值被转换为新表中的 0。对于其他字段类型,源表中的 null 值被转换为新表中的空值 (blank value)。有关空值 (blank value) 的详细内容,请参阅 ISBLANK( )。

下表列出了当包含 FOX2X 参数时,被转换为新表中不同字段类型的 Visual FoxPro 字段类型。

Visual FoxPro 字段类型 FoxPro 2.x 字段类型
货币型 浮点型
日期时间型 日期型
双精度型 浮点型
整型 数值型
 
DIF

创建一个 VisiCalc .DIF (数据交换格式)文件。Visual FoxPro 表的字段变为矢量(列),记录变为元组(行)。若在 FileName 中不包含扩展名,则指定新文件的扩展名为 .DIF。

MOD

创建 Microsoft Multiplan 4.01 版文件。若不包含扩展名,则指定新的Microsoft Multiplan 文件的扩展名为 .MOD。

SDF

创建 SDF(系统数据格式)文件。SDF 文件是 ASCII 文本文件,其中记录都有固定长度,并以回车和换行符结尾。字段不分隔。若不包含扩展名,则指定SDF 文件的扩展名为 .TXT。注意,当使用 copy to 命令创建 SDF 文件时,会忽略 SET CENTURY 的设置。

SYLK

创建 SYLK (符号连接)交换文件。SYLK 文件用于 Microsoft Multiplan。每个当前选定表中的字段变为电子表格中的一列,每个记录变为一行。SYLK 文件没有扩展名。

WK1

创建 Lotus 1-2-3 2.x 版的电子表格文件。每个当前选定表中的字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WK1。

WKS

创建 Lotus 1-2-3 1a 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WKS。创建 Lotus Symphony 1.1 或 1.2 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WR1。

WR1

创建 Lotus Symphony 1.1 或 1.2 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WR1。

WRK

创建 Lotus Symphony 1.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WRK。

XLS

创建 Microsoft Excel 2.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。若不包含文件扩展名,则新建电子表格的文件扩展名指定为 .XLS。

XL5

创建 Microsoft Excel 5.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。若不包含文件扩展名,则新建电子表格的扩展名指定为 .XLS。

DELIMITED

创建分隔文件。分隔文件是 ASCII 文本文件,其中每条记录以一个回车和换行符结尾。默认的字段分隔符是逗号。因为字符型数据可能包含逗号,所以另外用双引号分隔字符型字段。
除非另外指定,否则所有新建 DELIMITED 文件的扩展名都指定为 .TXT。

DELIMITED WITH Delimiter

创建用字符代替引号分隔字符型字段的分隔文件。分隔字符型字段的字符用 Delimiter 指定。

DELIMITED WITH BLANK

创建用空格代替逗号分隔字符型字段的分隔文件。

DELIMITED WITH TAB

创建用制表符代替逗号分隔字符型字段的分隔文件。

DELIMITED WITH CHARACTER Delimiter

创建的文本文件中,各个字段由指定的 Delimite 分隔。若指定 Delimite 为分号,注意分号应用引号括起来,因为分号在 Visual Foxpro 中有特殊的意义:同一命令被分写在不同行中时,用分号作为行的结束。Delimite 还可以是BLANK 或 TAB。

注意 WITH Delimiter 可与 WITH CHARACTER Delimiter 配合使用。比如,在下面的例子中,创建了一个文本文件,其中各个字段由分号 ; 分隔,字符字段用下划线 _ 标识:

COPY TO mytxt.txt DELIMITED WITH _ WITH CHARACTER ';'
AS nCodePage

指定 COPY TO 创建的表或文件的代码页。Visual FoxPro 复制当前选定表的内容,并且在复制数据的同时,自动将数据转换到为新表或文件指定的代码页。如可能,Visual FoxPro 用指定的代码页标记新建的表或文件。
若为 nCodePage 指定了不被支持的值,Visual FoxPro 产生一条错误信息。可使用 GETCP( ) 显示“代码页”对话框,并允许为 Visual FoxPro 创建的表或文件指定代码页。
若省略 AS nCodePage,则将新建的表或文件转换到 Visual FoxPro 当前代码页。
若 nCodePage 是 0,则不发生代码页转换,并且不用代码页标记新建的表或文件。

说明
若已设置了索引排序方式,则按主索引顺序复制记录。
2012-03-13 00:35
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
操作步骤是否正确


copy to.新表名..for.某字段...
错误的

应为:
COPY TO 新表 FIELDS 字段1,字段2

现在的年轻人,学习浮躁,不喜欢多看书。

[ 本帖最后由 lygcw9603 于 2012-3-13 01:17 编辑 ]
2012-03-13 00:38
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:3 
手工操作:
在项目管理器中,选定数据-数据库-表,然后点击“添加”,在对话框中找到相应的表,即可添加。

程序操作楼上各位已有介绍。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-03-13 14:16
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
回复 楼主 快乐至上
直接select
sele * from 原表 where recno()<1 into table 新表
2012-03-13 15:02
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
收藏
得分:0 
回复 6楼 tlliqi
谢谢~
2012-03-13 20:18
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
收藏
得分:0 
回复 2楼 lygcw9603
非常感谢~
2012-03-13 20:20
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
收藏
得分:0 
回复 5楼 hu9jj
谢谢!
2012-03-13 20:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你学这个不要光顾着模仿操作,要彻底理解原理,否则到时不会变通,还是si。

授人以渔,不授人以鱼。
2012-03-13 20:57
快速回复:有关项目,数据库和表操作题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027865 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved