在 ACCESS 中添加一个具有默认值的字段
我想使用 Visual C++ 代码插入一个具有默认值的新字段。 我写过这个:
CADODatabase pDB;
String strConnessione = _T("Provider=Microsoft.Jet.OLEDB.4.0;""Data Source=");
strConnessione = strConnessione + "MioDatabase.mdb";
pDB.SetConnectionString(strConnessione);
pDB.Open();
query.Format("ALTER TABLE TBProva ADD Fattore Double Default 0;");
pDB.Execute(query);
但它不正确。 我该怎么做才能做到这一点? 你们中有人可以给我写正确的代码吗?
I'd like to insert a new field with a Default value using Visual C++ Code.
I have wrote this:
CADODatabase pDB;
String strConnessione = _T("Provider=Microsoft.Jet.OLEDB.4.0;""Data Source=");
strConnessione = strConnessione + "MioDatabase.mdb";
pDB.SetConnectionString(strConnessione);
pDB.Open();
query.Format("ALTER TABLE TBProva ADD Fattore Double Default 0;");
pDB.Execute(query);
but it isn't correct. How can I do for doing it?
Someone of you Can write me the just code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 JET-SQL 语言中,您必须使语法更加具体,并在“ALTER TABLE”句子中添加“COLUMN”单词。 示例:
根据帮助,您可以定义默认值,但我从未尝试过。 此语法仅对 Access/JET 数据库有效。 我认为如果您通过 ODBC 或 ADO 访问访问表,它不会起作用。
在这种情况下,您可以通过其他方式更改数据库结构。 您会找到一个示例 在这里。 这是使用 DAO 对象模型创建的,但可以轻松切换到通用 ADO 对象模型以与 ADODB 连接一起使用。
编辑:一种“隐式 ADO 解决方案”(意味着使用 ADODB 连接但不使用 ADO 表对象等)可以如下所示:(
有关连接字符串示例,请检查 此处)
如果您正在使用活动 mdb 文件,只需编写:
就是这样。
如果您更喜欢使用 ADO 对象,请将 ADOX 库添加到您的代码源中并使用
Table.columns.append 方法。您将找到一个示例 此处
In JET-SQL language you have to be more specific with the syntax and add the 'COLUMN' word in the 'ALTER TABLE' sentence. Exemple:
According to the Help, you can define a default value but I never tried it. This syntax is only valid with Access/JET database. I do not think it will work if you reach your access table through ODBC or ADO.
In such situations, you can change your database structure through other means. You'll find an example here. This was made with DAO object model but can be easily switched to common ADO object model to be used with an ADODB connection.
EDIT: one "implicit ADO solution" (meaning using the ADODB connection but not the ADO tables objects etc" can then be the following:
(for connection string examples, check here)
If you are working with the active mdb file, just write:
That's it.
If you prefer to use ADO objects, please add ADOX library to your code source and use the
Table.columns.append
method. You'll find an example here您缺少
COLUMN
关键字,例如实际上,我认为您可能也缺少
NOT NULL
部分,例如我这样说是因为 Jet 不支持使用
DEFAULT
关键字,因此只有当列声明为NOT NULL
并且列名被省略时,才会应用DEFAULT
INSERT
中的列列表。 如果该列可以为 NULL,那么如何让引擎应用默认值?!You are missing the
COLUMN
keyword e.g.Actually, I think you might be missing the
NOT NULL
part too e.g.I say this because Jet doesn't support the use of the
DEFAULT
keyword in SQL DML, therefore the only time aDEFAULT
will be applied is when the column is declared asNOT NULL
and the column name is omitted from column list in anINSERT
. If the column were NULLable, how would you get the engine to apply the default?!