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

如何将memo中的内容输入到SQL?

尚未結案
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-11 20:35:34 IP:218.85.xxx.xxx 未訂閱
请问如何将memo中的内容输入到SQL语句中,我试了用'memo1.text'对么?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-11 20:45:06 IP:211.20.xxx.xxx 未訂閱
引言: 请问如何将memo中的内容输入到SQL语句中,我试了用'memo1.text'对么?
ffprince 你好
你已講對一半了(後半)
  Query1.SQL.text := Memo1.Text ;
或
  Query1.SQL.lines.Assign(Memo1.lines); // 好像比較長喔,我也不用
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-11 20:49:25 IP:211.76.xxx.xxx 未訂閱
您好: 如果你要MEMO內的全部內容就用MEMO1.text 若要memo1內的某一行就用memo1.lines.string[i] ~~應無所住而生其心~~
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-11 20:54:26 IP:218.85.xxx.xxx 未訂閱
thank you! 我现在是想把memo中的内容输入到数据库中的一个字段上面,我还有几项是用 edit输入的直接用的是(name):=edit.text可是用name=memo.text就不行,因为考虑到输入的字段可能比较长,而edit中只能输入一行内容。
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-11 21:07:54 IP:218.85.xxx.xxx 未訂閱
ADOQUERY1.SQL.Text:='INSERT INTO 学生表 (存入日期,学号,学生类别,学生住址,学生情况,备注,操作人员) values(''' datetostr(DateTimePicker1.Date) ''',''' ComboBox1.text ''',''' Edit3.text ''',' memo1.Text ',' memo2.Text ',''' edit1.text ''',''' edit2.text ''')'; 请问我这样用对么?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-11 21:21:48 IP:211.20.xxx.xxx 未訂閱
引言: ADOQUERY1.SQL.Text:='INSERT INTO 学生表 (存入日期,学号,学生类别,学生住址,学生情况,备注,操作人员) values(''' datetostr(DateTimePicker1.Date) ''',''' ComboBox1.text ''',''' Edit3.text ''',' memo1.Text ',' memo2.Text ',''' edit1.text ''',''' edit2.text ''')'; 请问我这样用对么?
應該如下 ADOQUERY1.SQL.Text:='INSERT INTO 学生表 (存入日期,学号,学生类别,学生住址,学生情况,备注,操作人员) values(''' datetostr(DateTimePicker1.Date) ''',''' ComboBox1.text ''',''' Edit3.text ''',''' memo1.Text ''',''' memo2.Text ''',''' edit1.text ''',''' edit2.text ''')'; Edit.text你知道前後要加''' 三個單引號,為何Memo.Text沒加呢? 但是考慮到Memol會隱含斷行符號建議你改成如下(以參數傳遞欄位值) ADOQUERY1.SQL.Text:='INSERT INTO 学生表 (存入日期,学号,学生类别,学生住址,学生情况,备注,操作人员) values(''' datetostr(DateTimePicker1.Date) ''',''' ComboBox1.text ''',''' Edit3.text ''',:StudAddr,:StudView,''' edit1.text ''',''' edit2.text ''')'; ADOQUERY1.ParamByName('StudAddr').AsString := memo1.Text; ADOQUERY1.ParamByName('StudView').AsString := memo1.Text; ADOQUERY1.EXECSQL; ..... 發表人 - chance36 於 2004/02/11 21:23:26 發表人 - chance36 於 2004/02/11 21:25:04
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-11 21:32:17 IP:218.15.xxx.xxx 未訂閱
您好: 不知道有没有误会您的意思,您是想把
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-11 21:32:46 IP:211.76.xxx.xxx 未訂閱
您好: 你name=memo.text就不行的原因可能是因為資料庫型態的因素 你要找一ㄍ適合存memo.text的型態 ~~應無所住而生其心~~
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-11 21:57:59 IP:211.20.xxx.xxx 未訂閱
引言: field1的type必须为memo类型;
嚇我一跳,我以為我認知錯誤,緊急測試了一下,確定String欄位也可儲存memo.text的值(即使其中有斷行字元亦可以),只是字串欄位有字數的限制,而Memo型態的欄位較沒限制罷了 考慮可能輸入的資料長度再適當的選擇欄位資料型態是應該的。 僅提供參考
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-11 22:03:18 IP:218.85.xxx.xxx 未訂閱
您好: 我试了你的方法,可是无论我是否定义了变量‘studaddr’ 都会提示我parameter'stusaddr'no found 而且要加一个parameters,对么? ADOQUERY1.Parameters.ParamByName('StudAddr').Value := memo1.Text; ADOQUERY1.Parameters.ParamByName('StudView').value := memo2.Text;
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-11 22:23:05 IP:218.85.xxx.xxx 未訂閱
deity你好 我是这个意思,可是你说的field1的type是指的数据库中的类型么,我在数据库中的类型是varchar2型的能用 么?还有你用的Table11是指的数据库中的表名么 ?还是用的控件的表名?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-02-11 22:34:05 IP:211.76.xxx.xxx 未訂閱
您好: 這樣試試,VARCHAR可以存 memo1.Text ADOQUERY1.Parameters[0].Value := memo1.Text; ADOQUERY1.Parameters[0].Value := memo2.Text; ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-02-11 22:44:34 IP:218.15.xxx.xxx 未訂閱
经Chance36大大指出,上面一句确实有误,可能是自己平时所用多为memo类型,所以< >,怪自己能力有限,以后回答上有错误,还得各位大大指正< > to ffprince table1是所用的资料表 还望您的问题能早日解决。 ——行径窄处,留一步与人行——
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-02-11 22:52:25 IP:211.20.xxx.xxx 未訂閱
引言: 您好: 這樣試試,VARCHAR可以存 memo1.Text ADOQUERY1.Parameters[0].Value := memo1.Text; ADOQUERY1.Parameters[1].Value := memo2.Text;
再確認這行 .... values(''' datetostr(DateTimePicker1.Date) ''',''' ComboBox1.text ''',''' Edit3.text ''',;:StudAddr,:StudView,''' edit1.text ''',''' edit2.text ''')' 參數前面有個':'喔
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-02-11 22:54:07 IP:218.85.xxx.xxx 未訂閱
ADOQUERY1.Parameters[0].Value := memo1.Text; 请问“0“是指的数据库中 的某一列么?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#16 引用回覆 回覆 發表時間:2004-02-11 22:58:16 IP:211.76.xxx.xxx 未訂閱
您好: 指的是第一ㄍ參數,也就是:StudAddr ~~應無所住而生其心~~
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#17 引用回覆 回覆 發表時間:2004-02-11 23:02:12 IP:211.20.xxx.xxx 未訂閱
ADOQUERY1.Parameters[0].Value := memo1.Text; “0“是指的sql指令中自訂的參數中的第0個參數(..,:StudAddr...則StudAddr即為參數名稱) 依先後次序由0 開始算起 terrychen大大 效率真好 發表人 - chance36 於 2004/02/11 23:04:05
系統時間:2024-11-23 11:45:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!