1、用ADODB.PromptDataSource获取连接串的时候,能不能知道用户点的并不是“确定”按钮(如点了取消,或者直接关了窗口)?2、用ADOConnection连接Access数据库,执行以下SQL语句创建一个表:
Create Table table_name(f1 String(200), f2 Integer, f3 Decimal(10, 2))
在有些机器上会出现“无效的字段类型”错误。已知这些出错的机器都已有Microsoft Jet 4.0的驱动,并且不管是否已经装了Office中的Access程序都会出错。why?前面的50分,后面的150:)
Create Table table_name(f1 String(200), f2 Integer, f3 Decimal(10, 2))
在有些机器上会出现“无效的字段类型”错误。已知这些出错的机器都已有Microsoft Jet 4.0的驱动,并且不管是否已经装了Office中的Access程序都会出错。why?前面的50分,后面的150:)
这是PromptDataSource的源码,,,核桃可以把它拆散了用.function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
var
DataInit: IDataInitialize;
DBPrompt: IDBPromptInitialize;
DataSource: IUnknown;
InitStr: PWideChar;
begin
Result := InitialString;
DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
if InitialString <> '' then
DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER,
PWideChar(InitialString), IUnknown, DataSource);
DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
Result := InitStr;
end;
end;
桃核可以改用...Dec类型或numeric试试..
2、可以将字段类型String改为Text、Memo(或者Integer改为Int,Decimal改为Number等)再看看
我查了DAO的SDK
dbBigInt Big Integer
dbBinary Binary
dbBoolean Boolean
dbByte Byte
dbChar Char
dbCurrency Currency
dbDate Date/Time
dbDecimal Decimal
dbDouble Double
dbFloat Float
dbGUID GUID
dbInteger Integer
dbLong Long
dbLongBinary Long Binary (OLE Object)
dbMemo Memo
dbNumeric Numeric
dbSingle Single
dbText Text
dbTime Time
dbTimeStamp Time Stamp
dbVarBinary VarBinary并没有string类型, 改成Text就OK了Create Table table_name(f1 Text(200), f2 Integer, f3 Decimal(10, 2))