QQ登录

只需要一步,快速开始

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

[求助] 关于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.' G6 B% Q6 `$ V/ |/ b$ J: s
     
+ z0 g$ {4 h+ W# |3 x' l/ z     while not adoqxiaoban.Eof
, Z" G- o0 y( \" c3 j% M) V7 p2 c     do, J" i  K, G. I* R! v
     begin8 ~7 V: F9 z6 c
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
- y7 E* h7 {6 }/ N     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;2 }# H, j% W2 ^4 `) T) I6 x
     strcode:=strlinban+strxiaoban;
, H2 c( s' |( w/ A5 j7 F+ |     adoqs.SQL.Clear ;
5 c, ^* {" x+ P: g  F3 y     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');& V1 v* k8 [8 P2 O
     adoqs.Prepared ;$ @- f7 \4 B. N; i2 Q
     try
7 T: @/ O! T8 h. S7 _" `9 _     adoqs.Open ;
8 c* \& ~9 e7 i# Y+ w     adoqxiaoban.Next ;
& i( C4 N3 b" m+ Y     except
# q; e" N; z4 g3 q% p7 I     showmessage(''出错!'');9 k( s5 t" o- P' ]2 y7 m8 |+ [
     exit;0 Y5 c6 m1 r) L6 L- W" P5 J
     end;) b% R( |5 n" W3 g0 J
     end;
+ _) `4 K  |4 G7 }     adoqlinban.Next ;' y( \9 m/ N; j% W+ t1 b
     
9 V+ m2 ]( a9 S# X     这是其中的一段代码 好像出错的就是在这 在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 ;
    ) X; t$ F- v1 _; M% `6 G你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses. b- T. X9 |4 R; z/ Z' ?
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,5 s' T" K: f) ^- h
      Dialogs, StdCtrls, DB, ADODB;</P><>type) m4 \% S0 I9 F" ^
      TForm1 = class(TForm)! s& v+ |. C" J) M5 x
        Edit1: TEdit;
    ! w! L9 s. T6 R5 {" k    Button1: TButton;0 i6 M5 j  W+ I& y/ E5 [2 z
        ADOConnection1: TADOConnection;
    1 e/ O% i  Z( W( k9 B/ Q) e% L! T    ADOQlinchang: TADOQuery;
    ' w3 j5 {6 e0 ?! m7 z2 U. l5 M3 K0 F: I    ADOQyinglinqu: TADOQuery;
    - i! d+ K& G. H& W    ADOQzuoyequ: TADOQuery;
    + F- ^$ _0 S% p) M  e6 j    ADOQlinban: TADOQuery;
    ; X3 i2 i% E. T% [+ p& |/ Q    ADOQxiaoban: TADOQuery;  p' D4 h1 z6 x( i! r% z( J
        ADOQs: TADOQuery;
    + ]% Y$ t: \  R$ A5 H7 e& Y    procedure Button1Click(Sender: TObject);
      f) K0 [  Y! @$ _/ w, s; h/ T  private
    / {; p; {8 x' m7 Z  J" O    { Private declarations }$ T: \+ D) Q8 n" J
      public
    3 a/ _" B4 j% `* C$ U: ?    { Public declarations }
    & E) y) O# U3 w& K- c4 N2 i1 k0 f0 ~  end;</P><>var
    , n6 E! d5 Z8 e0 d2 f/ d  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    , n0 |1 [4 U0 }  F" dvar
    2 |+ A; ]% Y) Vstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    + o, K; K; Y7 F  I9 Kbegin
    6 f3 N  b) }/ B& Badoqlinchang.Close ;1 U# A8 M8 l# @8 d9 H3 `
    adoqyinglinqu.Close ;# A0 A9 a2 C+ |. h
    adoqzuoyequ.Close ;" O- @: o2 n' m6 w5 a  l6 `
    adoqlinban.Close ;
      R2 B5 Y( B  p; I: H. R5 cadoqxiaoban.Close ;( C: D% e8 n3 c4 Y: _0 c) W
    adoqs.Close ;
    9 Y% X. C. A1 t% P4 _" i7 y6 Madoqlinchang.SQL.Clear ;, Y, }1 l! J/ y( V: Y
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');' ~* U5 _- `/ q- Y4 [, m/ \+ S# N
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;' {# Z9 n1 \0 O: @. |
    adoqlinchang.Prepared ;9 U" C1 g/ m2 ^* U+ M
    adoqlinchang.Open ;! z: C9 U" v! j! H0 C4 c; M! p
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    , O, {) S' N" Jadoqyinglinqu.SQL.Clear ;
    $ Q6 \& T1 x1 J2 `3 R, O" X" ]& qadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    9 Q) p! _) h  n7 V5 j2 f2 Vadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    4 s. j5 p8 p9 tadoqyinglinqu.Prepared ;7 D& `( `6 K$ T- u) H% ?
    adoqyinglinqu.Open ;* }: ]9 |1 F& |3 k! Y
    while not adoqyinglinqu.Eof% I+ J6 i- p" q- A! A/ s
    do6 ]' A$ S6 L% w3 E* `: [4 J5 o
    begin
    # t: |5 `6 Y' B) M7 J  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );* J  f: A$ e5 l; m1 N6 m
      strcodeying:=strlinchang+'999'+stryinglinqu;% g! Y6 s1 B4 d3 U6 |% L7 v$ [* {3 I$ p
      ADOQZuoYeQu.SQL.Clear;5 o1 W, r* |: }) `- ^8 H
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    ( a$ w; H+ V, `# B  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;. e7 s. w) b# a2 w; h! c5 v0 O; D2 L0 @
      ADOQZuoYeQu.Prepared;
    7 N4 a) B* ?9 _: E" ~  ADOQZuoYeQu.Open ;+ P8 E/ t+ W( \  Z: G  o( Q
      while not adoqzuoyequ.Eof
    + C* P+ x" |1 H  do
    3 k3 Q" x; v4 h: @+ p3 a, Z# k6 q  begin
    * S& q9 l7 O1 G; V. J7 f9 X. y    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    3 M5 b7 ?* s) C2 {. M# w    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;7 w% Q* a- t7 B+ S3 d
        ADOQLinBan.SQL.Clear;1 W4 u$ J! p) A1 e& L; t
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');! M8 O; A8 ~9 x0 W" r8 L/ l4 N, v
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;5 {( s# I$ Y+ S9 K
        ADOQLinBan.Prepared;  W1 q) H7 Q6 c% K
        ADOQlinBan.Open;0 w2 o/ F, ~% u' F# p
        while not adoqlinban.Eof4 x0 R$ y5 ?7 R$ ^' r
        do. v2 M- j, G/ ?+ A! c: c
        begin
    5 n( H  S- [- z/ K# J7 n      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );+ T# e  Y/ y  h1 @' o9 D" ~7 {
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;0 T$ [3 J, W) I" Q3 G. \% g* t
          adoqxiaoban.SQL.Clear ;
      i( j3 u" p. C; C      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    6 D2 V# T# `+ h6 D! t" E      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;( ^  z1 K5 E  Q
          adoqxiaoban.Prepared ;/ C( e  Y! A3 G) U/ ~8 E
          adoqxiaoban.Open ;
    & V8 A( P0 t& f- ?        while not adoqxiaoban.Eof
    + Q) S& ]2 m  f* g# b' D; K        do  F# q" s8 n: h' V' x
            begin) u- C: F5 d' Q  z
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );. A% ^0 u6 c% b% q# N) q1 W  `
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    9 H4 N+ J1 j+ c/ q          strcode:=strlinban+strxiaoban;' Q9 |7 T- A2 \9 R
              adoqs.SQL.Clear ;; [- ?9 F$ e9 J5 i
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');' W) ]* C+ e3 O' S0 Q$ U0 q& ]
              adoqs.Prepared ;
    : R& o3 S4 q4 z6 r7 O          try
    * E2 |2 K0 [9 z2 h/ ?# X# u          adoqs.Open ;
    1 \6 E9 c+ u2 {9 K8 m, g* ^9 p          adoqxiaoban.Next ;9 E8 K# `9 }1 k" V2 _/ x
              except
    ' f% ^3 v/ Z4 Z. A+ W! n6 l          showmessage('出错!');
    " z1 N/ ]% c; {1 _9 v" B          exit;7 K% D& ?. B2 Q8 d/ K0 n
              end;
    4 t( v: t2 o+ ~        end;
    $ C4 j$ K: L( K        adoqlinban.Next ;* q* _  d, J- f$ O+ v# [
        end;" ^. a9 Q5 n/ ~6 D$ q8 V: Y! A, ]  X
        adoqzuoyequ.Next;7 G+ f; s8 X+ p/ D
      end;
    * e. S0 Z6 @2 {# N3 Q5 j' q  w) Y' L    adoqyinglinqu.Next ;. R: j1 N! Z3 l8 b, V
    end;! N# G2 J% M2 l( i" ~8 `* Z& |
      adoqlinchang.Close ;& f& f) J0 T$ G2 I
      adoqyinglinqu.Close ;" E4 p& u+ A% o# A
      adoqzuoyequ.Close ;
    : m; r" C& C9 s! u" u" x) S1 h  adoqlinban.Close ;/ c6 J/ N; m! k& }/ o. Q
      adoqxiaoban.Close ;8 v( W- K. J. f; d) \& T
      adoqs.Close ;
    ( c4 T% J8 @% f, n4 J( W# zend;</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);
    . U) ?8 `2 A" l4 _( ]3 f6 ~var
    6 i1 S! c8 Y2 U, c  b8 o  str1,str2:string;2 d/ y1 f4 N; B5 [  F: j
    begin
    " G  ^2 W: y3 ^- U" U( |0 _; Wstr1:='001';$ {2 H8 g( _& u2 a1 y
    str2:='002';
    2 q1 B) P4 p* Vadoquery1.Close ;7 E. p7 _' {5 L0 u  t; H
    adoquery1.SQL.Clear ;
    9 U3 c7 {9 y  P1 `' g, ?adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    % V) w: s' g* J4 U- A0 \adoquery1.Prepared ;+ \9 }1 m% }: R( K
    adoquery1.ExecSQL ;7 ?% \& D5 Z! s
    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-7-18 13:10 , Processed in 0.454423 second(s), 98 queries .

    回顶部