關於 .asFloat 的問題 |
尚未結案
|
suzhoukenny
一般會員 發表:7 回覆:8 積分:3 註冊:2006-07-28 發送簡訊給我 |
請問一下
ParamByName('floatData').AsFloat := StrToFloat(StrPas(floatData)); 我這邊這個.AsFloat居然會報錯,,而且我傳參數進去的是floatData:=1.6; 但是我後來改成 ParamByName('floatData').value:= StrPas(floatData); 就正常,不知道為什麼? 是不是電腦的問題?還是其他原因,我目前用的是dbe做為連線db的方式. 感謝好心人幫忙,,指點迷津, 因為ParamByName('floatData').AsFloat := StrToFloat(StrPas(floatData)); 已經用了很長時間了,怎麼突然之間就發生問題了,
------
miskenny |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
錯誤訊息是什麼?
floatData是'1.6',還是裡面還有其它字元? 資料庫的欄位型態還是浮點數(decimal)? [code delphi] procedure TForm1.Button1Click(Sender: TObject); const floatData: PChar = '1.6'; //'1.6 x'; begin ClientDataSet1.Append; ClientDataSet1.FieldByName('floatData').AsFloat:=StrToFloat(StrPas( floatData)); end; [/code] |
suzhoukenny
一般會員 發表:7 回覆:8 積分:3 註冊:2006-07-28 發送簡訊給我 |
HI,大俠.
ORA-01480: trailing null missing from STR bind value . 在Insert 的時候出現了此類ORACLE 錯誤. 而且有時候也出現 ORA-01400: cannot insert NULL into ... PROGRAM: procedure TForm1.Button1Click(Sender: TObject); var i:integer; p:pchar; f:real; begin // i:=intToStr(edit1.Text); //p:='1.5'; // p:=Pchar('1.6'); p:=Pchar(edit1.Text); // Showmessage(floattostr(strtofloat(StrPas(p)))); f:=StrToFloat(StrPas(p)); showmessage(':' floattostr(f)); //strpas() query1.Close; query1.SQL.Clear; query1.SQL.Add(' insert into ORAT.TESTTABLE (F1,F2,F3,F4,F5,F6,F7) ' ' values (''test'', ' ' ''test'',' ' :test_value, ' ' sysdate , ' ' ''test'',' ' ''test'',' ' ''test'' ) '); query1.ParamByName('test_value').value :=StrToFloat(StrPas(p)); query1.ExecSQL; query1.close; end; // F3 這個欄位是 NUMBER(7,3) 的類型. edit1.Text:='1.5'; edit1.Text:='1.6'; 這2個不同的設定就會有不同的 ORA -ERROR資訊.
------
miskenny
編輯記錄
suzhoukenny 重新編輯於 2008-09-23 10:42:35, 註解 無‧
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
begin
Query1.Close; Query1.SQL.Text:='insert into ORAT.TESTTABLE(F1,F2,F3,F4,F5,F6,F7)'; Query1.SQL.Add(Format('values(''%s'',''%s'',%s,sysdate,''%s'',''%s'',''%s'')',['test1','test2',Edit1.Text,'test5','test6','test7'])); Query1.ExecSQL; end;
------
What do we live for if not to make life less difficult for each other? |
suzhoukenny
一般會員 發表:7 回覆:8 積分:3 註冊:2006-07-28 發送簡訊給我 |
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
var SL:TStringList;
begin SL:=TStringList.Create; SL.Add(Query1.SQL.Text); ........... SL.SaveToFile('TMPSQL.SQL');// 您可以打開文字檔,看SQL的語句,可否單獨執行。 SL.Free end; ==================================== Query1.ParamByName('test_value').Value := .......因為不易除錯,我現在已經很少用。 ===================引 用 suzhoukenny 文 章=================== 感謝你的回覆, 我還想請教關於我發的這個問題,是什麼問題造成的? 能否解釋一下? 謝謝.
------
What do we live for if not to make life less difficult for each other? |
suzhoukenny
一般會員 發表:7 回覆:8 積分:3 註冊:2006-07-28 發送簡訊給我 |
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
Hi ~~
若您輸入浮點數在Edit1.Text欄,則 Query1.SQL.Add(Format('%s,''%s''',[Edit1.Text, 'test4'])); 何需再StrtoFloat ? ===================引 用 suzhoukenny 文 章=================== Query1.SQL.Text,,,,SQL裡面市不能直接寫 浮點參數進去,所以這樣寫實優點問題的 因為我的第三個欄位是 浮點數.
------
What do we live for if not to make life less difficult for each other? |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |