QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12966|回复: 10
打印 上一主题 下一主题

[求助] 关于delphi访问数据库发生了错误 !!!急!!!急!!!急!!!

[复制链接]
字体大小: 正常 放大
penguin        

1

主题

2

听众

23

积分

升级  18.95%

该用户从未签到

网络挑战赛参赛者

新人进步奖

跳转到指定楼层
1#
发表于 2005-5-6 10:09 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
project project2.exe raised exception class eoleexception with message ''在此上下文中不允许使用''c1999001999001999001999001''。此处只允许使用常量、表达式或变量。不允许使用列名。''.process stopped.use step or run to continue.: t9 R: a3 m2 `$ q6 t$ E
     4 d" F9 H1 i6 ~3 z/ n
     while not adoqxiaoban.Eof- P2 u0 D0 v  w/ X2 j
     do
' \- \& v5 L' B. l( t. a: j     begin' S' P6 X3 N$ B& q7 @
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );- I+ _4 v% x+ {
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;! @& J) e# @7 L! O0 I' n
     strcode:=strlinban+strxiaoban;6 s, F! H7 W) d# p$ r
     adoqs.SQL.Clear ;
* U9 K, w4 _) g& D; r     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');2 k$ q, {' \: U+ m: F  {
     adoqs.Prepared ;
5 L1 P5 E" ~5 _     try0 |$ P+ U; h8 F4 w$ d3 j+ O
     adoqs.Open ;. n+ N% K/ d5 I6 n  m2 ]) s5 O
     adoqxiaoban.Next ;% p6 p! v4 I: i2 V7 \' t0 N4 |
     except
: S8 f4 W! D3 a# H% Y# l+ _     showmessage(''出错!'');
, o6 e" z5 \/ ^8 S3 c     exit;
( c7 f5 A' @; y4 `" y     end;6 s- ~, B% n  i! q7 F
     end;
$ B! r# g: c  V6 T/ m     adoqlinban.Next ;
, t0 I! a) i* _- q+ P  R7 Y     
7 p5 e- G  q( S' i: W5 G4 h2 t     这是其中的一段代码 好像出错的就是在这 在adoxiaoban.next那 哪位大虾帮帮忙 很急了
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    <>我估计是这句的问题adoqs.Open ;
    ( A5 B1 e: {# ?+ i( h4 S你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses1 d7 ~" D3 a' j
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    4 e5 a# V6 y0 r) ?  Dialogs, StdCtrls, DB, ADODB;</P><>type
    ! n" `" [: ~# |* _# O  TForm1 = class(TForm)
    $ v- y# _. H. H5 U$ J/ H; J2 y    Edit1: TEdit;7 l1 L( f/ E. D, R7 s8 c' Q
        Button1: TButton;
    3 Y4 s+ Y2 c& i2 x6 s2 F# Y' W: M; u) ]! Y    ADOConnection1: TADOConnection;
    . f% p6 b, L' F6 z0 i* Q  E    ADOQlinchang: TADOQuery;
    8 z, a2 ^  U- {$ g3 K" g* o    ADOQyinglinqu: TADOQuery;2 O! j, g7 v* ]0 P8 Y4 m
        ADOQzuoyequ: TADOQuery;5 o& K# j5 M% Y. `& {/ X- @: _. b' F
        ADOQlinban: TADOQuery;0 z9 ^6 z; ~! b9 j0 s0 m
        ADOQxiaoban: TADOQuery;
    9 k9 ?6 `( T0 n* C+ R' R. f    ADOQs: TADOQuery;" N) J  C1 v* d. f+ A6 A* e- U
        procedure Button1Click(Sender: TObject);& A7 d& }& \: {
      private
    6 x8 [/ o% V0 C) p  I3 ~- x    { Private declarations }
    * `- B4 Q: O* y) R+ H  public
    6 q/ m- s  s0 n! _3 i8 o9 n- k( ]    { Public declarations }
    3 J; f3 P7 R; Y- K6 G6 ~  end;</P><>var) W# ?8 g" O1 y% U( I9 N# w
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);/ i! y, e" \  K& e9 l" \' G* N  S/ A
    var5 _" K( j+ O* M' I" _
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    $ J# m/ y, p, H( i' Ibegin
    ' Q% P$ i1 ^- v7 i! j- yadoqlinchang.Close ;% W  W" P; s- P0 ]0 F8 j; I/ Q5 k
    adoqyinglinqu.Close ;0 K2 [8 z4 k+ A2 W) g# j
    adoqzuoyequ.Close ;) C: ~- p+ S$ w& r7 z+ W9 [
    adoqlinban.Close ;
    - J0 T+ o' f, E5 [7 z% sadoqxiaoban.Close ;
    ; D1 g& s' r) I/ x. y2 o) Padoqs.Close ;
    8 G3 l( e% t8 ]8 Xadoqlinchang.SQL.Clear ;
    2 U) a' G/ O% Z4 I; V8 oadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    8 k# o: H$ U9 A+ l) z" w; Y: _0 Ladoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;5 Z  |4 n# X% j- ^5 d9 `
    adoqlinchang.Prepared ;
    + V& M3 j5 x8 q6 Y1 E- L  Eadoqlinchang.Open ;
    + i4 n; I3 g, ?7 Istrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    # C3 W$ P; c  R- [# s9 J- Kadoqyinglinqu.SQL.Clear ;
    4 p- o4 Y$ N" ^% J( h! w3 O5 h8 D" Jadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');* O" D' i# O% ]$ D/ e) B: U
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    " Z5 a5 H) w; n" ]3 Q5 D: v$ |adoqyinglinqu.Prepared ;* v8 ]& C# \' W2 G9 M
    adoqyinglinqu.Open ;4 k* y" D" ]0 F5 @
    while not adoqyinglinqu.Eof
    & P) I' v$ a7 j1 x3 [$ \do, E1 }6 x+ t6 o
    begin
    & L- H5 \, e5 e  b5 X4 W  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );5 d& U: ~( q7 K% _
      strcodeying:=strlinchang+'999'+stryinglinqu;% T. T& l# a) s4 ~
      ADOQZuoYeQu.SQL.Clear;* R2 ~& _7 x  y5 V. {/ b0 o
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');0 y6 q/ e6 B# y/ W% q
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    ) J1 m/ O% p" Y( x+ k/ f6 x. P  ADOQZuoYeQu.Prepared;
    / s* t. S/ R: C/ }. z2 J; \2 J  ADOQZuoYeQu.Open ;9 `0 _! m9 E( m$ n* W& H
      while not adoqzuoyequ.Eof1 V/ @$ q- t8 g: _0 B; m& W
      do
    . |( c: l4 y; b6 w9 e! W  begin
    . p; B( ]5 e' `! a    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    , Z# H) _+ K$ {) \1 \    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;0 N3 z" q4 f4 l9 H
        ADOQLinBan.SQL.Clear;% q' ~: |$ u8 q- F
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    ( X! I! \5 ~6 u    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;9 I# i5 @2 I' \* A- A; T. p
        ADOQLinBan.Prepared;3 J9 b* ^# R5 [, Y
        ADOQlinBan.Open;6 q8 P  {2 |- y# A
        while not adoqlinban.Eof: \9 `' K$ z3 M
        do
    2 V7 H" `1 I/ e6 @4 K% \    begin
    , V# A& j" Q3 E  W) ^2 _1 j6 S      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    $ Z8 \) w2 M6 t, \( g1 Y      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    - N3 @+ t+ H3 _% T4 [/ u      adoqxiaoban.SQL.Clear ;) o' e( a2 j) o3 [$ n' @' V. z
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');! ?  {( S% ^( n, j% N
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    1 e3 j* N" t8 i5 m  f1 @. J      adoqxiaoban.Prepared ;
    1 s8 L2 K0 c8 f      adoqxiaoban.Open ;+ z$ I! r# b. }5 G+ }/ J
            while not adoqxiaoban.Eof4 [0 ^& T, N6 a, y: @6 |, ^$ C1 x
            do" E8 T! ?* q( \2 q0 x
            begin/ \/ m& X- s9 l5 V9 ~6 h$ r
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );5 c& Y4 A7 }( b# i1 C
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
      ~. N$ y  [& B; Y- p% X          strcode:=strlinban+strxiaoban;
    7 b8 J) h- ?# e          adoqs.SQL.Clear ;! r$ |) H# J% R, V+ n
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    ; B3 D$ v0 L3 P+ J          adoqs.Prepared ;
    9 R: @- X/ _+ g  g3 Q          try
    - i5 n$ K9 ^2 G" m0 b( T6 [) w          adoqs.Open ;' H4 |6 ]2 ?) f5 L" m* ^" h
              adoqxiaoban.Next ;; f, S; U& H' w" _0 v, H0 U1 t
              except- S  n4 ?5 G9 i9 s* L( s
              showmessage('出错!');- d* u; f; ?$ c" w% w3 a
              exit;* Y$ Y& d# V& T6 A4 {
              end;
    " F0 N0 n( }/ [5 Q, V        end;0 N/ }/ ^. G& K+ I
            adoqlinban.Next ;( m7 U5 F7 _) \; ~) y6 D% l0 n4 c
        end;2 q" X. `% I4 N# v9 S" ?
        adoqzuoyequ.Next;
    & w1 {  t+ v# v9 m  end;
    ( C3 Y2 {, ?* e" u3 `& k' a9 z    adoqyinglinqu.Next ;
    " O6 s& O- d; Y; b; [* q9 ^( ?end;9 Y' B) b$ \9 c; ~0 a
      adoqlinchang.Close ;" s) \9 m7 e$ M% i8 U& j
      adoqyinglinqu.Close ;$ U( d( |1 [, p" {- E' z$ K
      adoqzuoyequ.Close ;
    ) s5 K  j; u+ w) e0 t3 j  adoqlinban.Close ;
    3 ^4 K% j, w5 y2 x! K  adoqxiaoban.Close ;7 h0 r9 K* R# Q! k" i" q
      adoqs.Close ;% R6 [$ M- p" u
    end;</P><>end.</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    你的程序我读起来不太明白,没有数据库我也调试不了,但是从错误看应该是SQL语句的问题,你应该跟踪一下,看看每个生成的SQL语句是不是正确!
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    怎么跟踪亚 因为我的delphi没学多久 [em04] 我开始也以为是sql语句错 但试了下好像没什么问题
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>而且 每次用delphi向sql server里插入字符串时 如 001 到了数据库里面都是 1 </P><>数据库里的数据类型是char型的 </P>
    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    你确认存入数据库的语句没有问题吗?001变成了1应该当作整型处理的原因,我一般喜欢用varchar的类型!
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>那是个实现从数据库中提取各级单位的编码 然后再编成最底一级的单位的编码 以表示它们间的上下级的关系 很简单的 </P><>这个很急 搞了一个5.1  都没弄出来 下面的工作都没法做了 拜托拜托了</P><>至于 001 变为 1的 程序在下面</P><>procedure TForm1.Button1Click(Sender: TObject);3 p& z& ]- |$ L0 P  a/ b
    var
    . `, b+ q2 i- [  str1,str2:string;
      H5 s9 g8 I2 b4 w3 `5 qbegin1 t$ e% V: q, w6 I. }
    str1:='001';
    0 I6 x6 N6 L0 I; e7 u/ \, astr2:='002';
    ' O1 j' N8 w, y! Q7 q! Zadoquery1.Close ;3 H0 J/ l  t+ N$ X" n( `; u! I
    adoquery1.SQL.Clear ;
    / P/ r6 J  a1 c6 radoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    ( A" |6 I; O0 M9 m. a' h* Y% jadoquery1.Prepared ;5 B! k8 C4 Z! G5 ~0 h% G3 G
    adoquery1.ExecSQL ;  i  i% D$ Q9 U: _3 J" p, ]
    end;</P><>我觉得我的程序没有错呀 </P><>还有 varchar 和 char 有什么区别亚</P><>万分感谢!!! </P>[em07][em01][em01][em01]
    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    <>晕,你的SQL语句写的不对!字符串数据添加是两边要有',否则就按数字处理了!</P><>adoquery1.SQL.Add('insert into test1 values('''+str1+''','''+str2+''')');</P><>这句改成上面的就对了!</P>
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-2 04:12 , Processed in 0.465838 second(s), 96 queries .

    回顶部