我用ODBC往sql server 2000中insert into資料,可是結果只能insert進256個字符,代碼如下
CDatabase m_dbAgent;
CString str,sql;
m_dbAgent.OpenEx("DSN=yidong;UID=sa;PWD=ilo2016");
sql ="insert into dbo.test(Col001)values('";
sql += "1aaaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddccccddccccddccccddccccddccccddcccccccccccd\
ddcccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2";
sql += "')";
m_dbAgent.ExecuteSQL(sql);//1開頭,2結尾
結果寫進資料庫的只有256個字符,資料庫表中對應欄位是varchar,8000字符,無論是用ODBC的方法還是ADO的方法,都是如此,不知為何,哪位熱心的大俠請幫忙一下,多謝了。
但是同樣的insert 陳述句在查詢分析器中試是沒有問題的。
uj5u.com熱心網友回復:
是不是vc寫入varchar的列,只能是256字符啊,在線等uj5u.com熱心網友回復:
afxMessageBox(sql);//檢查一下sql陳述句是否正確m_dbAgent.ExecuteSQL(sql);
uj5u.com熱心網友回復:

沒有問題了,是以2結尾的
uj5u.com熱心網友回復:

沒有問題了,是以2結尾的
用afxMessageBox列印sql字串顯示是沒有問題的,可是寫入資料庫就出問題了。
uj5u.com熱心網友回復:
如果sql工具能寫入超過256個字符,VC不應該只能輸入256字符
你資料庫欄位換別的型別看看
uj5u.com熱心網友回復:
換了幾個跟字符有關的型別,好像還是不行。
uj5u.com熱心網友回復:
GetODBCFieldInfo 查看資訊ALTER TABLE tableName ADD columnName varchar(1024) 插入一列, 然后操作這個列試試看
uj5u.com熱心網友回復:
難道要做BLOB型別資料的存取,這樣太麻煩,應該是哪里256限制了,有誰知道的告訴一聲,謝謝。uj5u.com熱心網友回復:
GetODBCFieldInfo 查看資訊
ALTER TABLE tableName ADD columnName varchar(1024) 插入一列, 然后操作這個列試試看
好的,今天有空試試,多謝了。
uj5u.com熱心網友回復:
在現實世界中,除時間和空間可能是無限的以外,其它任何事物都是有限的。uj5u.com熱心網友回復:
檢查m_dbAgent.ExecuteSQL(sql);這個函式的實作,是不是其內部有做了截斷?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/108155.html
標籤:數據庫
上一篇:Windows原始桌面與虛擬桌面
