m_DB. ExecuteSQL(drop table +表名);
為什么會報錯呢,到底應該怎么實作
uj5u.com熱心網友回復:
你連上了沒有uj5u.com熱心網友回復:
連上了呀
uj5u.com熱心網友回復:
報的是什么錯誤碼?uj5u.com熱心網友回復:
m_DB. ExecuteSQL("drop table 表名");表名對應的表存在嗎?
表名對應的表不是系統表吧。
當前連接資料庫對應的用戶有洗掉表的權限嗎?
……
uj5u.com熱心網友回復:
有權限么?drop table是需要權限的uj5u.com熱心網友回復:
要什么樣的權限呢,現在是這樣的,如果只寫洗掉這句,是可以實作的;但是我把表名記錄在一個資料庫表里了,現在想做的是把這個表名的整條記錄洗掉然后再把表名對應的表也洗掉CString TABLE;
DtuStr = m_pdtuSet->m_Dtu_num;
TABLE = m_pdtuSet->m_Tablename;
if (m_dtuimei!=DtuStr)
{
m_pdtuSet->MoveNext();
if (m_pdtuSet->IsEOF())
{
MessageBox("此DTU號在表tb_dtu中不存在!");
}
}
else//存在洗掉
{
m_pdtuSet->Delete();
m_pdtuSet->Requery();
CString TABLEDELE;
TABLEDELE="DROP TABLE"+TABLE;
m_DB.ExecuteSQL(TABLEDELE);
}
uj5u.com熱心網友回復:
你少空格了吧?TABLEDELE="DROP TABLE "+TABLE;uj5u.com熱心網友回復:
加空格也實作不了洗掉uj5u.com熱心網友回復:
除錯一下啊,看看TABLEDELE的內容是什么,把sql陳述句拿出來到資料庫用同樣的登錄名操作一下看看什么結果uj5u.com熱心網友回復:
SQL的陳述句也是對的,就是如果不執行洗掉(1)m_pdtuSet->Delete();m_pdtuSet->Requery();直接執行(2)CString TABLEDELE;TABLEDELE="DROP TABLE"+TABLE;m_DB.ExecuteSQL(TABLEDELE);是可以實作洗掉表的,如果執行前者就不能洗掉表;或者先執行2,后執行1,那就2可以實作,1不能實作,報錯就是一個帶×的對話框,沒有其他,哪位高手知道錯誤在哪里?
還有另外一個關于資料庫操作的問題,在此請教,資料庫表的內容是變化的,當一個記錄在表中存在達到10分鐘,我就把這個記錄洗掉,當界面上有人點擊按鈕就會像表中添加一條記錄,但是點擊不頻繁,也就是說這個表可能是個空表嗎,但是我要實時的讀表,像表中的某個值對應的設備號發訊息,我現在代碼如下,當表為空表時就會彈出對話框提示“試圖越過資料有效貯存區間”,怎么能讓程式不提示這個呢
if(m_pdtuSet->IsEOF())
{
return;
}
m_pdtuSet->MoveFirst();
while (!m_pdtuSet->IsEOF())
{
DataSend(m_Num, m_Data);
lastTime= m_pdtuSet->m_creatTime;
nowTime=CTime::GetCurrentTime();
int m_nHour =nowTime.GetHour(); ///小時
////////////////////////////////////////////////////////////////
CTimeSpan span=nowTime-lastTime; //計算當前系統時間與時間t1的間隔
int iMin=span.GetTotalMinutes();//獲取總共有多少分鐘
if (iMin>10)
{
m_pdtuSet->Delete();
m_pdtuSet->Requery();
}
Sleep(200);
m_pdtuSet->MoveNext();
}
m_pdtuSet->Close();
delete m_pdtuSet;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131306.html
標籤:資源
下一篇:畫圖控制元件 在VC環境使用
