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

寫入資料庫問題

答題得分者是:chih
challenge
一般會員


發表:14
回覆:41
積分:11
註冊:2002-10-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-08 00:46:47 IP:211.74.xxx.xxx 未訂閱
請問一下… 我是利用delphi連結mysql資料庫… 在mysql那已有下好的語法…亦可以執行… 可要把sql語法寫進delphi時… 若單純的select的話…沒問題… 可是一旦要將select出來的東西要insert進去資料表就發生如下錯誤訊息: Project count_pro.exe raised exception class ENoResultSet with message 'Error creating cursor handle'. Process stopped. Use Ste or Run to continue. 怎麼try都不曉得問題在那? 麻煩大家指教一下…謝謝^^
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-08 08:11:20 IP:211.74.xxx.xxx 未訂閱
你可不可以把你的code貼上來.. 不然這樣可能很難幫你看問題喔..
challenge
一般會員


發表:14
回覆:41
積分:11
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-09 00:56:24 IP:211.74.xxx.xxx 未訂閱
●這是mysql那的語法: insert QUES_TEA_STA values (TEA_ID, QUES_ID, QS_NO, RESULT, QS_SUM1,                      QS_SUM2, QS_SUM3, QS_SUM4, QS_SUM5, DEP_ID)  select tea.TEA_ID, tea.QUES_ID, tea.QS_NO ,  /* 算出每一題的統計結果*/  sum(tea.RESULT) / count(QS_NO) as 'RESULT'  /* 算出每一題的每一選項之統計結果 */  ,sum(tea.QS_SUM1) as 'QS_SUM1', sum(tea.QS_SUM2) as 'QS_SUM2',   sum(tea.QS_SUM3) as 'QS_SUM3', sum(tea.QS_SUM4) as 'QS_SUM4',   sum(tea.QS_SUM5) as 'QS_SUM5'  /* 開課單位 */  , course.DEP_ID     from QUES_CRS_STA tea, COURSE_DETAIL course  /* 1.主找出課程的開課單位且開課單位判斷是否為主要開課單位   * 2.找出問卷之權重   */  where tea.CRS_ID = course.CRS_ID and course.MDEP = '1'  /* 不同的開課單位有教師整體評鑑,所以也要將 course.DEP_ID  加入group by中*/  group by course.DEP_ID, tea.TEA_ID, tea.QUES_ID, tea.QS_NO    ●這是在delphi的程式: procedure TForm1.BitBtn1Click(Sender: TObject); begin case choose.ItemIndex of 0: with query1 do    begin    DatabaseName:='mysql';    close;    sql.Clear;    //以下這兩句若不註解的話…就會發生寫入錯誤,可在mysql那可執行    //query1.sql.add('insert QUES_TEA_STA(TEA_ID, QUES_ID, QS_NO,    RESULT, QS_SUM1,');    //query1.sql.add('QS_SUM2, QS_SUM3, QS_SUM4, QS_SUM5, DEP_ID)');    query1.sql.add('select tea.TEA_ID, tea.QUES_ID, tea.QS_NO ,');        query1.sql.add('sum(tea.RESULT) / count(QS_NO) as ''RESULT''');    query1.sql.add(',sum(tea.QS_SUM1) as ''QS_SUM1'', sum(tea.QS_SUM2) as ''QS_SUM2'',');    query1.sql.add('sum(tea.QS_SUM3) as ''QS_SUM3'', sum(tea.QS_SUM4) as ''QS_SUM4'',');    query1.sql.add('sum(tea.QS_SUM5) as ''QS_SUM5''');        query1.sql.add(', course.DEP_ID');       query1.sql.add('from QUES_CRS_STA tea, COURSE_DETAIL course');    query1.sql.add('where tea.CRS_ID = course.CRS_ID and course.MDEP                     = ''1''');    query1.sql.add('group by course.DEP_ID, tea.TEA_ID, tea.QUES_ID,                     tea.QS_NO');    prepare;    query1.open;    end;
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-09 08:20:23 IP:211.74.xxx.xxx 未訂閱
看了一下你的語法.. 我們一般要在Delphi用SQL指令是這樣的.. insert into ABC (XXX1,XXX2) values ('111','222') 可是看了你的SQL語法..如果把mark的二行不要mark.. 語法好像有錯誤ㄋ... 還有最後不是用Query1.Open... 而是Query1.ExecSQL; 這樣不知道清不清楚.. 你試看看... 如果有問題在Post上來吧...
系統時間:2024-05-06 21:36:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!