无法加入备忘录、OLE 或超链接对象

Posted

技术标签:

【中文标题】无法加入备忘录、OLE 或超链接对象【英文标题】:Cannot join on Memo, OLE, or Hyperlink Object 【发布时间】:2014-07-14 09:45:36 【问题描述】:

数据库:MS-Access

这些是我的数据库表和列。

Table: proje

Field Name     Type
-------------  -----------------------
id             Integer(Auto Increment)
projeAdi       Long Text
sirketAdi      Long Text

Table: calisan

Field Name     Type
-------------  -----------------------
id             Integer(Auto Increment)
gun            Date/Time
isTanimi       Long Text
kulID          Integer
basSaat        Date/Time
bitisSaat      Date/Time
proje          Long Text
istipi         Long Text

Sql查询:

sorgu.Connection = baglanti;
baglanti.Open();    
sorgu.CommandText = "SELECT * FROM calisan INNER JOIN proje ON proje.projeAdi = calisan.proje;";
oku = sorgu.ExecuteReader();

我得到了错误

(proje.projeAdi=calisan.proje)

如何解决这个限制?

【问题讨论】:

【参考方案1】:

正如错误消息所述,您不能直接在 JOIN 中使用备注字段(在 Access 2013 中称为“长文本”字段),所以

cmd.CommandText =
        "SELECT * FROM calisan " +
        "INNER JOIN proje ON proje.projeAdi = calisan.proje";

行不通。你可以使用

cmd.CommandText =
        "SELECT * FROM calisan " +
        "INNER JOIN proje ON Left(proje.projeAdi,255) = Left(calisan.proje,255)";

有以下注意事项:

    只会比较每个字段的前 255 个字符,并且 查询可能执行缓慢。

【讨论】:

以上是关于无法加入备忘录、OLE 或超链接对象的主要内容,如果未能解决你的问题,请参考以下文章

无法加入备注、OLE 或超链接对象 - Access 2007 - 外部联接

XtraGrid Suite - 有没有办法向单元格添加按钮或超链接?

点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数

如何使用 sencha touch 2 中的按钮或超链接在轮播项目之间切换?

从子记录(或超链接)获取数据以在 netsuite 高级 html pdf 中打印

无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象