全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1651
推到 Plurk!
推到 Facebook!

MDB Like 内存溢出

尚未結案
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-28 13:16:13 IP:218.11.xxx.xxx 未訂閱
ADOQuery Access数据库(MDB) 文本类型的字段 1600条记录 select 卡片名,卡片类型 From OCG WHERE 效果 Like '%王%' 或者select 卡片名,卡片类型 From OCG WHERE 效果 Like '*王*' 提示一样 都是在ADO的Level出错 "内存溢出" 用Filter模糊过滤卡片名可以 但是因为没有选择效果列 便不能Filter效果那列 我又不想把那列选出来...请教各位先人 怎样解决模糊查找的问题?(MSSQL数据库没有问题) Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-28 16:35:20 IP:202.62.xxx.xxx 未訂閱
您好﹗    一般來講﹐我們通常在設定資料表結构的時候﹐用英文命名各欄位名稱﹐這是比較科學的做法﹐從您的SQL語法上來看應沒有問題﹐所以建議您把中文的欄位名稱改為英文的描述﹐再試試看﹗    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-01 09:22:25 IP:218.80.xxx.xxx 未訂閱
试试把ADO升到2.8    另外,问问cashxin2002 ,我看到台湾正航的Erp系统,全部资料库的FieldName都是繁体中文,我也觉得很诡异,但听说这个Erp还卖得不错,以他们的能力都这样做,是不是有啥特别好处?     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-01 09:38:09 IP:202.62.xxx.xxx 未訂閱
引言: 试试把ADO升到2.8 另外,问问cashxin2002 ,我看到台湾正航的Erp系统,全部资料库的FieldName都是繁体中文,我也觉得很诡异,但听说这个Erp还卖得不错,以他们的能力都这样做,是不是有啥特别好处? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
小弟還沒有看過這套系統﹐找找看﹐謝謝﹗ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-14 09:26:54 IP:218.11.xxx.xxx 未訂閱
我确认不是中文栏位名的原因 只要是被查询Like的栏位较长或*条目过多的时候 就会出内存溢出... 继续请指教... Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-15 09:25:49 IP:218.80.xxx.xxx 未訂閱
兄弟,ADO哪个版本?Delphi哪个版本?     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-22 15:09:05 IP:218.11.xxx.xxx 未訂閱
大哥 我是Delphi7.0 简体中文XP ADO2.8 我把我的程序发到您邮箱您帮忙看一下? Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-22 16:06:28 IP:61.222.xxx.xxx 未訂閱
1.可能MDB為 ACCESS 97的格式。->ACCESS 2000 2.MDB 資料庫內容有亂碼。
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-22 16:33:33 IP:218.11.xxx.xxx 未訂閱
我的库是Access2000/2002 内有中文/日文字符 有没有乱码怎样判定呢... Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-06-07 08:57:19 IP:210.22.xxx.xxx 未訂閱
发给我,可以的。 如果上传到这里,大家都看看不是更好?     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-06-07 09:58:03 IP:218.11.xxx.xxx 未訂閱
谢谢mustapha.wang 我不知道怎样上传附件 我放到http://diansh.net/ocg.rar 请您帮忙看一下 Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-06-07 13:36:30 IP:210.22.xxx.xxx 未訂閱
跟踪了一下,在ADODB.pas的这个函数报错,
function TCustomADODataSet.GetRecordCount: Longint;
begin
  CheckActive;
  Result := Recordset.RecordCount;
end;
如果你不调用label1.Caption:=inttostr(DataSet.RecordCount);而且DataSource不连DataSet,就不会报错了。 进一步原因查找中......... 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-06-08 16:22:25 IP:218.11.xxx.xxx 未訂閱
我也试了一下 去掉了RecordCount那句 错误断在ADO.pas 4055 GetMode=gmNext 注释为 { Don't call MoveNext during open if no bookmark support } 上微软的网站说bookmarkSuport 需要
引言: Dynamic cursors don't support bookmarks. If you need bookmark support, go for a keyset or static cursor.
support.microsoft.com/default.aspx?scid=/ Support/ActiveServer/faq/data/adofaq.asp TCustomADODataSet.GetRecord(Buffer,GetMode,DoCheck)中调用 InternalGetRecord(Buffer, GetMode, DoCheck)时出错 好像是在其中的DataSet.Next的时候出错的 F7跟入到MoveBy DB.pas 10108行TDataSet.GetNextRecord 如您所言 不指定DataSource没事 用ADOQuery->Provider->ClientDataSet->DataSource->DBGrid 也不行 加大CacheSize到100 后不报错误但是CDS记录为0 只要ADOQuery一往外给数据就会出错 现在想来 代码应该是没有错 应当是某种设置的问题 因为直接连MSSQLServer就不报错... 继续期待 Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-06-08 18:21:19 IP:61.222.xxx.xxx 未訂閱
事實上,MDB 使用 Like 語法。 會有"内存溢出"的錯誤由來已久! 一般而言,不外呼資料庫內容有 亂碼或是什麼等等。 建議作一個實驗,先將日文字符的數據全部刪除。並壓縮資料庫。 一步步找出會引起錯誤的紀錄。 我處理MDB類型的資料庫,幾乎都不用 Like ...或Update 的語法。 出錯的可能性太大了。 以上僅提供參考。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
xinyw
一般會員


發表:4
回覆:12
積分:3
註冊:2004-05-27

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-06-09 11:35:39 IP:218.11.xxx.xxx 未訂閱
多谢您的指点! 如您所言 我想那些日文字符中应该是有某些属于"乱码"的 可能是数据中有某些不能被Like捕捉的数据  如不可见字符或控制字符之类 存到了该文本字段中 我很想找到这样的一个字符列表并将其Replace掉... #另:有没有办法存成Unicode的格式呢?#    我的MDB中的日文数据是我需要的 使用Like来找寻东西的功能也是我需要的 我不能因为会出错而逃避这两个需要 所以您所言到的
引言:我處理MDB類型的資料庫,幾乎都不用 Like ...或Update 的語法。出錯的可能性太大了。
不知您是用怎样的方法来替代其实现呢? Imagine me and you I do I think about you day and night
------
Imagine me and you
I do
I think about you day and night
jean2004
初階會員


發表:69
回覆:80
積分:39
註冊:2004-12-18

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-07-11 16:26:48 IP:222.135.xxx.xxx 未訂閱
在access 2002的mdb資料庫的“備註”欄位裏用ADO控制項使用LIKE會記憶體溢出,和亂碼無關,原因不明,所以我改用過濾查詢,速度比SQL語句快,但缺點也明顯
系統時間:2024-06-27 22:35:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!