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. vim的几个插件mark.vim ctrlp.vim等

    开发过程中, 保证语义的前提下, 尽量使用 短的 变量名: 如: 用 $map来代替 $condition, 因为在书写长的变量名的时候, 容易写错, 而排查错误, 还不容易找出来. vim在浏览和排 ...

  2. 处理文字基线 文字对不齐 font-size

    这是我无意中发现的,先记录下 比如你在一个h1标签里面添加文字,或者在其他块级标签添加文字,想让他们间隙少一点,(基线影响)可把行高设置为line-height: 1;就达到消除基线的作用. 建议使用 ...

  3. com.mysql.jdbc.PacketTooBigException,及mysql 设置 max_allow_packet

    本文为博主原创,未经允许不得转载: 在进行批量导入表格数据入库操作时,报了以下错误: 错误分析: mysql根据配置文件会限制server接受的数据包大小.有时候大的插入和更新会受max_allowe ...

  4. Source not found :Edit Source Lookup Path 解决方案

    作者原创,转载请注明转载地址 在eclipse中用debug调试的时候,出现了以下问题,很是尴尬,经常碰到,所以有必要进行总结一下: 对该问题有两种解决方案, 一种比较文明:解决方法可参考如下网址: ...

  5. UVa 11729 突击战

    https://vjudge.net/problem/UVA-11729 题意:有n个部下,每个部下需要完成一项任务.第i个部下需要你话B分钟交代任务,然后立刻执行J分钟完成任务.安排交代任务顺序并计 ...

  6. python分享题目

    目前的分享题目:1 python在云计算虚拟教室领域的应用 2 python与虚拟货币(华三工程师) 3 python在移动游戏的实践(爪子) 4 python互联网敏捷运维实践(蓝雪) 5 pyth ...

  7. go语言 变量类型

    package main import "fmt" func main() { //这是我们使用range去求一个slice的和.使用数组跟这个很类似.创建数组 nums := [ ...

  8. python tar 压缩解压

    压缩: 1. import tarfile import os def tar(fname): t = tarfile.open(fname + ".tar.gz", " ...

  9. Node.js结合Selenium做Web自动化测试

    发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...

  10. Linq 常用方法解释

    /// <summary> /// linq /// </summary> public class Linq { /// <summary> /// 测试 /// ...