1樓:匿名使用者
感覺樓主的問題沒描述清楚!
用什麼型別的變數??
資料庫中是文字型別的變數??
是不是指資料庫中的表其中有個欄位是文字型別的?然後想取得記錄中這個欄位的值?
「那麼問號這裡應該用什麼型別的變數?cstring型別不行,_bstr_t的與_variant_t似乎都不行」這句話匪夷所思...
-----------------------------
暈,原來不光是vc有問題,你的資料庫知識也不行哦。
objectid到底是什麼型別的呢?你都不描述清楚,還要讓閱讀你帖子的人來根據上下文猜。
objectid是文字型別的吧!
如果是,sql語句應該是:
select * from objectinfo where objectid = '123'
在程式中呼叫的話,稍微轉換一下就可以了:
cstring strcmd;
strcmd.format(_t("select * from objectinfo where objectid = \'%s\'"), objid);
m_precordset=m_pconnection->
p.s.看到你後面一個帖子了:
cstring轉_bstr_t可以強制型別轉換的:
_bstr_t bstr = (_bstr_t)strcmd;
_variant_t什麼都可以接受的,因此也可以強制型別轉換。
感覺你的vc知識很不牢固,像bstr,variant,_bstr_t,_variant_t其實都是com的資料型別,如果連vc資料轉換都不沒弄透徹,再學com的資料型別,並且要能夠自由地在vc和com資料型別中作轉換是很吃力的。另外要學ado,首先需要學資料庫。不學資料庫,直接ado,只會一知半解,如果只是這樣的程度,還不如不學。
因為一知半解是出不來實用程式的。
給你個學習線路的建議:
0、c++的operator成員函式使用原理》1、mfc的資料型別》2、com的資料型別》3、mfc與com之間做轉換練習》4、資料庫》5、ado
2樓:
execute第一個引數_bstr_t不用getbuffer,第二個引數就用 _variant_t
oracle資料庫sql語句表中存id 時間用select語句數出每個id分別在幾個時間段裡出現次數
可以使用case when select id,count case when to char v date,yyyymmddhh24mi between s and e then 1 else 0 end as num1,count case when to char v date,yyyymmd...
資料庫的查詢語句的別名怎麼起翱,資料庫的查詢語句的別名怎麼起啊?
直接把語句用括號括起來,然後as別名即可。如 select a.from select from emp where deptno 10 as a,select from emp where sal 2000 as b where a.empno b.empno 語句中a和b就是別名,但注意查詢中欄...
oracle資料庫如何刪除約束,資料庫中怎樣刪除約束
用system使用者登入後,使用drop語句就可以刪除 根據錯誤提示的約束名稱,然後disable掉試試。alter table table name disable constraint constraint name alter table 約束基於的表名 drop constraint 約束名...