http://blog.csdn.net/kfhzy/article/details/6020283

http://blog.csdn.net/kfhzy/article/details/6020545

李维的代码,原来链接的是MS SQL,改成ACCESS后,创建Table时报 类型无效 错误

原因:

除了

adDBTimeStamp 这样的Access 明显不支持的数据类型外,一般的,也有区别,adVarChar 在ACCESS里是adVarWChar
procedure TfrmCreateTable.btnCreateTableClick(Sender: TObject);
begin
// create table
with FCatalog do
begin
FTable := CoTable.Create;
FTable.ParentCatalog := FCatalog;
FTable.Name := edtTableName.Text; FTable.Columns.Append('ISBN', adVarWChar, );
FTable.Columns.Append('BookName', adVarWChar, );
FTable.Columns.Append('Publisher', adVarWChar, );
FTable.Columns.Append('Author', adVarWChar, );
// FTable.Columns.Append('PDT', adDBTimeStamp, 8); //MS SQL Server
FTable.Columns.Append('Price', adInteger, ); // create index
FIndex := CoIndex.Create;
with FIndex do
begin
Name := 'ISBN';
PrimaryKey := True;
Unique := True;
Columns.Append('ISBN', adVarWChar, );
end;
FTable.Indexes.Append(FIndex, EmptyParam);
Tables.Append(FTable);
end;
end;
使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法
作者:孟宪会 发表于:2010-10-21 11:12:18

使用 ADOX 创建 adDBTimeStamp 类型的字段时,会产生“类型无效”的错误提示,产生这种错误的原因是,数据库引擎 Provider 只能接受已知类型的数据类型,下面是可以接受的类型对照表:

ADOX.DataTypeEnum 类型枚举常量 Value Jet 3.51 Jet 4.0 SQL 7.0
adBinary 128 Yes Yes Yes
adBoolean 11 Yes Yes Yes
adChar 129 Yes No Yes
adCurrency 6 Yes Yes Yes
adDate Yes Yes No
adDouble 5 Yes Yes Yes
adGUID 72 Yes Yes Yes
adInteger 3 Yes Yes Yes
adLongVarBinary 205 Yes Yes Yes
adLongVarChar Yes No Yes
adLongVarWChar 203 No Yes Yes
adNumeric 131 No Yes (with info)* Yes (with info)*
adSingle 4 Yes Yes Yes
adSmallInt 2 Yes Yes Yes
adUnsignedTinyInt 17 Yes Yes Yes
adVarBinary 204 Yes Yes Yes
adVarChar 200 Yes No Yes
adVarWChar 202 No Yes Yes
adWChar 130 No Yes Yes
adDBTimeStamp 135 No No Yes
* 在Microsoft Jet 4.0 和 Microsoft SQL Server 7.0 中使用 adNumeric 数据类型时,必须设置精度(precision)。
 
 

ADO 数据类型

下面的表格列出了 Access、SQL Server 与 Oracle 之间的数据类型映射:

DataType Enum Value Access SQLServer Oracle
adBigInt 20   BigInt (SQL Server 2000 +)  
adBinary 128   Binary
TimeStamp
Raw *
adBoolean 11 YesNo Bit  
adChar 129   Char Char
adCurrency 6 Currency Money
SmallMoney
 
adDate 7 Date DateTime  
adDBTimeStamp 135 DateTime (Access 97 (ODBC)) DateTime
SmallDateTime
Date
adDecimal 14     Decimal *
adDouble 5 Double Float Float
adGUID 72 ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB)) UniqueIdentifier (SQL Server 7.0 +)  
adIDispatch 9      
adInteger 3 AutoNumber
Integer
Long
Identity (SQL Server 6.5)
Int
Int *
adLongVarBinary 205 OLEObject Image Long Raw *
Blob (Oracle 8.1.x)
adLongVarChar 201 Memo (Access 97)
Hyperlink (Access 97)
Text Long *
Clob (Oracle 8.1.x)
adLongVarWChar 203 Memo (Access 2000 (OLEDB))
Hyperlink (Access 2000 (OLEDB))
NText (SQL Server 7.0 +) NClob (Oracle 8.1.x)
adNumeric 131 Decimal (Access 2000 (OLEDB)) Decimal
Numeric
Decimal
Integer
Number
SmallInt
adSingle 4 Single Real  
adSmallInt 2 Integer SmallInt  
adUnsignedTinyInt 17 Byte TinyInt  
adVarBinary 204 ReplicationID (Access 97) VarBinary  
adVarChar 200 Text (Access 97) VarChar VarChar
adVariant 12   Sql_Variant (SQL Server 2000 +) VarChar2
adVarWChar 202 Text (Access 2000 (OLEDB)) NVarChar (SQL Server 7.0 +) NVarChar2
adWChar 130   NChar (SQL Server 7.0 +)  

* 在 Oracle 8.0.x 中 - decimal 和 int 等于 number 和 number(10)。

使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法的更多相关文章

  1. 使用IDEA在引入Schema空间时报错URI is not registered解决方法以及Idea @Autowired取消提示 方法

    使用IDEA在引入Schema空间时报错URI is not registered解决方法以及Idea @Autowired取消提示 方法   Idea @Autowired取消提示 spring b ...

  2. Silverlight中文本框添加回车事件后,换行无法清除的解决方法

    在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...

  3. MySQL出现Waiting for table metadata lock的原因以及解决方法

    转自:http://ctripmysqldba.iteye.com/blog/1938150 (有修改) MySQL在进行alter table等DDL操作时,有时会出现Waiting for tab ...

  4. mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法

    补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题. 背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机 ...

  5. 20180117MySQL出现Waiting for table metadata lock的原因以及解决方法

    转自http://www.cnblogs.com/digdeep/p/4892953.html 转自:http://ctripmysqldba.iteye.com/blog/1938150 (有修改) ...

  6. VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法

    在VS2010 VC++ 项目添加引用时,有时会出现Internal CPS Error错误,提示信息: 'Internal CPS Error: We couldn't find the exist ...

  7. MySQL出现Waiting for table metadata lock的原因以及解决方法(转)

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...

  8. 使用mvc时,在视图view中使用强类型视图,在web.config文件中添加命名空间namespace的引用不起作用,解决方法

    这是view中的model代码: @model t_user_info 这是web.config配置文件只的代码: <namespaces> <add namespace=" ...

  9. jquery用append添加按钮之后,按钮监听无法使用的解决方法

    <!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...

随机推荐

  1. ajax中的contentType使用

    本文为博主原创,未经允许不得转载: 最近在修改部分项目功能的时候,遇到一个问题.局部刷新某页面的功能是由ajax实现的,但当我进行局部刷新的时候,页面并没有刷新和响应, 在后台的代码中打了断点也并没有 ...

  2. 列举一些有所帮助的blog和文章

    w3school hdoj imooc CSDN Github myGithub CmdMarkdown 一直在路上--记我从初中到本科近十年的学习成长历程 作者:周见智 C++中队列的建立与操作详细 ...

  3. input file获取选择图片的本地路径和base64路径

    input file获取选择图片的本地路径和base64路径 本地路径: myHeadFile: function (e) { // 这里是input file 的onchange事件 ] const ...

  4. Perl 获得当前路径

      1.有两种方法:1. use Cwd;my $dir = getcwd;#$dir中即为当前目录的完整路径信息.2. my $dir = $ENV{'PWD'};#ENV是一个散列,用于存放环境变 ...

  5. linux——通信指令学习简单笔记

    一: 指令名称:write 指令所在路径:/usr/bin/write 执行权限:All User 语法:write <用户名> 功能描述:向另外一个用户发信息,以Ctrl+D作 为结束 ...

  6. shell 清空指定大小的日志文件

    #!/bin/bash # 当/var/log/syslog大于68B时 if ! [ -f /var/log/syslog ] then echo "file not exist!&quo ...

  7. Python day19 模块介绍3(sys,json,pickle,shelve,xml)

    1.sys模块 import sys sys.path()#打印系统path sys.version()#解释程序版本信息 sys.platform()#系统平台 sys.exit(0)#退出程序 c ...

  8. visudo使用笔记

    目录前言一.介绍二.配置文件简介三.实战配置 前言:    su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成 ...

  9. 常用的vi/vim基本命令(持续更新)

    ★删除/复制/粘贴 全部删除:按esc后,然后dG  全部复制:按esc后,然后ggyG  全选高亮显示:按esc后,然后ggvG或者ggVG   按“+p“可将系统全局粘贴板里的内容粘贴进来   y ...

  10. Atcoder Yet Another Palindrome Partitioning(状压dp)

    Atcoder Yet Another Palindrome Partitioning 思路: 一个字符串满足条件的情况是奇数字母个数小于等于1,也就是异或起来是1<<j(0<=j& ...