線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1458
推到 Plurk!
推到 Facebook!

[microsoft][ODBC Visual FoxPro Driver]Function nam

缺席
deity
尊榮會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-18 22:08:29 IP:219.129.xxx.xxx 未訂閱
前辈: 上面那个SQL语句我以前也用过,没出错,如下: NewPriceQuery.SQL.Text := 'Select danjia from "' dblj 'cwjbmxz" where bianma="' bm '" order by jzrq desc';:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30411 为什么这次它就会出这种错误提示?好像两个语句是一样的,只不过多了个extract funtion而已,因为我有几个SQL语句,所以路径只能INI来指定,如果不行的话,要如何处理?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-19 00:31:15 IP:61.62.xxx.xxx 未訂閱
請先確認你組合出來的 sql command 是正確的, 在 dataset open 之前先這樣下: NewPriceQuery.SQL.SaveToFile('c:\sql.txt'); 然後檢查一下該檔的內容, 或是 post 上來讓大家看一下. 比較容易知道問題的所在!
deity
尊榮會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-19 09:47:30 IP:218.15.xxx.xxx 未訂閱
程序如下 : procedure TfindForm.DBGrid1DblClick(Sender: TObject); var   bm:string; date1,date2:Tdate;       mm,mtmp,i : word;       XOffSet : double;       MonthChanged : boolean; begin    bm:=bmEdit.Text ;    date1:=DateTimePicker1.Date ;    date2:=DateTimePicker2.Date; //平均价格  begin     if RadioButton6.Checked then      begin      danjiaQuery.Active := false;      danjiaQuery.Close ;      danjiaQuery.SQL.Clear ;      danjiaQuery.SQL.Text := 'Select bianma,mingcheng,danjia,jzrq,(SUM(danjia*sll) / SUM(sll)) as avgcb from "' +djpath+'cwjbmxz" where bianma="'+bm+'" and danjia<>0 group by bianma';      danjiaQuery.Active := true;      end     else      if RadioButton1.Checked then       begin       danjiaQuery.SQL.Text := 'Select bianma,mingcheng,danjia,jzrq,(SUM(danjia*sll) / SUM(sll)) as avgcb from "' +djpath+'cwjbmxz" where bianma="'+bm+'" and danjia<>0 and((jzrq>=:rq1)and(jzrq<=:rq2)) group by bianma';       danjiaQuery.Params [0].DataType :=ftdate;       danjiaQuery.Params [0].Value :=date1;       danjiaQuery.Params [1].DataType :=ftdate;       danjiaQuery.Params [1].Value :=date2;       danjiaQuery.Active :=true;       end;      Edit3.Text := Format('%-10.4n',[danjiaQuery.fieldByName('avgcb').asfloat]);      danjiaQuery.Close;   end; //走势图  begin      XOffSet := 0.1;      mtmp := 0;      Chartquery.SQL.Text :='select bianma,danjia,EXTRACT(MONTH FROM jzrq) AS MM from "'+djpath+'cwjbmxz " where bianma="'+bm+'" and danjia<>0 and sll>0 and jzdh<>"" group by MM,bianma';      Chartquery.Open;     while not Chartquery.Eof do      begin       mm :=Chartquery.fieldbyname('MM').asinteger;       MonthChanged := (mm<>mtmp);       if MonthChanged then        begin         for i := mm-1 downto mtmp+1 do         Series1.AddXY(i,0,Format('%-2.2d',[i])+'月',clNone);         Series1.AddXY(mm,Chartquery.fieldbyname('danjia').AsFloat,Format('%-2.2d',[mm])+'月',clRed);        end       else         Series1.AddXY(Series1.XValues.Last+XOffSet ,Chartquery.fieldbyname('danjia').AsFloat,'',clRed);         mtmp := mm;         Chartquery.Next;      end;  end; end; 但我增加红色部分时,也就是走势图之后,就出现'key Violation.[Microsoft][ODBC Visual FoxPro Driver]Function name is missing).'错误提示! 之前程序能PASS 过去,也没问题。 發表人 - deity 於 2003/08/19 09:55:57 發表人 - deity 於 2003/08/19 10:18:01
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-20 09:29:24 IP:203.95.xxx.xxx 未訂閱
HI, 看起來是該資料庫不支援 EXTRACT function 的語法, foxpro 弟不熟, 不知道如何取出月份, 弟前一篇文章的意思是請你將有問題的 sql command 存出, 然後貼上來, 並不是請你將程式貼上來, 因為有了你下的 sql command 後, 其實你可以直接在 foxpro 下直接下這個 command , 就可以知道你的 sql 語法有沒有錯誤了.
系統時間:2024-06-24 4:13:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!