标签: adox

ADOX多步OLE DB操作生成错误

我必须创建一个程序来关闭所有Unicode压缩和访问数据库(.mdb)中的所有"允许零长度".

关闭"允许零长度"的方法非常有效.但是,关闭Unicode压缩的方法根本不起作用,并返回以下异常:

多步OLE DB操作生成错误.检查每个OLE DB状态值(如果可用).没有工作.

关于如何解决这个问题的任何线索?

private void TurnOffUnicodeCompressionInField(ADOX.CatalogClass catalogClass, String tableName, String field)
{           
    ADOX.Column column = catalogClass.Tables[tableName].Columns[field];
    ADOX.Property prop = column.Properties["Jet OLEDB:Compressed UNICODE Strings"];
    prop.Value = true;
}

private void TurnOffAllowZeroLengthInAllFields(ADOX.CatalogClass catalogClass, String tableName)
{
    foreach (ADOX.Column column in catalogClass.Tables[tableName].Columns)
        column.Properties["Jet OLEDB:Allow Zero Length"].Value = false; 
}

private void MyButton_Click(object sender, EventArgs e)
{
    String filePath = "";
    OpenFileDialog ofd = new OpenFileDialog();
    DialogResult result = ofd.ShowDialog();

    if (result == DialogResult.OK)
    {
         filePath = ofd.FileName; 
         ADOX.CatalogClass catDatabase = …
Run Code Online (Sandbox Code Playgroud)

c# ms-access adox

6
推荐指数
1
解决办法
1271
查看次数

COM 异常:尝试创建 ADOX.Catalog 时“类未注册”

我一直在尝试通过C#创建一个Access数据库。我已经尝试使用这篇文章中的代码,并且我必须承认这篇文章非常有帮助。现在,这是我的代码中应该创建 Access 数据库的部分:

 public bool CreateNewAccessDatabase(string fileName)
    {
            //var cat = new ADOX.Catalog();
            //using var instead of CatalogClass hasn't worked either.
            ADOX.CatalogClass cat = new ADOX.CatalogClass();
            string tmpStr;
            string filename = fileName;
            tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";
            tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";
            cat.Create(tmpStr);
        Console.Out.WriteLine("OK");

        Table nTable = new Table();
        nTable.Name = "NombreDeEmpresa";
        nTable.Columns.Append("CAMPO1", ADOX.DataTypeEnum.adVarWChar, 25);
        nTable.Columns.Append("CAMPO2", ADOX.DataTypeEnum.adVarWChar, 45);
        nTable.Columns.Append("CAMPO3", ADOX.DataTypeEnum.adVarWChar, 45);
        nTable.Columns.Append("CAMPO4", ADOX.DataTypeEnum.adVarWChar, 45);
        nTable.Columns.Append("CAMPO5", ADOX.DataTypeEnum.adVarWChar, 25);
        nTable.Columns.Append("CAMPO6", ADOX.DataTypeEnum.adVarWChar, 20);
        nTable.Columns.Append("CAMPO7", ADOX.DataTypeEnum.adVarWChar, 15); …
Run Code Online (Sandbox Code Playgroud)

c# database ms-access adox

5
推荐指数
1
解决办法
4148
查看次数

ADOX 表列的“可空”属性?

我正在尝试使用 C# 创建一个 Access 文件 (.mdb)。我正在从 SQL 导出数据以用于遗留过程。我让它工作了,我面临的唯一问题是将列设置为可为空。

这是我所拥有的(为简洁起见,删除了大多数列):

private void CreateAndExportLegacyFile(DataTable data, string exportFilename)
{
    var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
    connectionString += "Data Source=" + exportFilename + ";Jet OLEDB:Engine Type=5";

    var catalog = new Catalog();
    catalog.Create(connectionString);

    var table = new Table { Name = "Main" };

    #region Column mapping
    table.Columns.Append("ID", DataTypeEnum.adVarWChar, 50);
    table.Columns.Append("FIRST", DataTypeEnum.adVarWChar, 50);
    table.Columns.Append("LAST", DataTypeEnum.adVarWChar, 50);
    #endregion

    foreach (Column column in table.Columns)
    {
        if (column.Name != "ID") column.Properties["Nullable"].Value = true;
    }

    catalog.Tables.Append(table);

    Marshal.FinalReleaseComObject(table);
    Marshal.FinalReleaseComObject(catalog.Tables);
    Marshal.FinalReleaseComObject(catalog.ActiveConnection);
    Marshal.FinalReleaseComObject(catalog);
}
Run Code Online (Sandbox Code Playgroud)

尝试设置“Nullable”属性时出现以下错误:“在与请求的名称或序号相对应的集合中找不到项目。” …

c# oledb jet .net-4.0 adox

4
推荐指数
1
解决办法
3972
查看次数

如何在Delphi XE4中使用ADOX组件?

我在Delphi 6编写的教程中读到:要安装ADOX组件,请从主菜单Project\Add type Library菜单项中选择.但是在Delphi XE4中没有这样的菜单项.如何在Delphi XE4中安装/使用ADOX组件以编程方式创建一个空的mdb数据库?或者有没有其他方法可以在没有ADOX的情况下创建它?

database delphi adox

0
推荐指数
1
解决办法
293
查看次数

标签 统计

adox ×4

c# ×3

database ×2

ms-access ×2

.net-4.0 ×1

delphi ×1

jet ×1

oledb ×1