QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12897|回复: 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.9 i* o2 A5 P- `& g
     4 y1 G# I  T, Q& @+ [5 x% X
     while not adoqxiaoban.Eof
: X+ c& n* c# ~. `/ I     do
7 l0 g$ i% E! |' C     begin
, n! {1 ^/ A2 {9 h6 i% J     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );/ B5 c$ }) Q7 o: Q4 u5 t& M/ v- i. |9 q6 d  v
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
* D% T7 A. G- H4 T     strcode:=strlinban+strxiaoban;7 y9 x' X# T( R" Y7 Y& O/ g# x7 l6 M
     adoqs.SQL.Clear ;
) ]; m' p1 r  b     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');+ X  K6 e6 p7 {6 Y8 t
     adoqs.Prepared ;
% J) g: o7 A% ^; {+ {( O     try
2 g4 F# o. C4 C/ f) b     adoqs.Open ;# j; M% K: \' _0 c
     adoqxiaoban.Next ;
% v! P& z8 |- E: z/ X2 A4 Y     except
- f. i9 j' a4 X2 _) B     showmessage(''出错!'');
) m, Z1 Q6 Q9 Y5 j* i     exit;- V% M4 I1 c3 S
     end;3 t/ y# D- \) Z2 W- a
     end;
- b4 Y0 A2 H* P: ^! G. k     adoqlinban.Next ;
* W; ]1 ?! u8 G# B& H4 W: f/ n- S     
% H' V8 Q) g$ V! p; s     这是其中的一段代码 好像出错的就是在这 在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 ;7 }9 Y6 W% j5 K' Z  m; O& |" o
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses. Q- |; @+ W( F3 `: a! U
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    8 [/ f0 f' E: j, f  Dialogs, StdCtrls, DB, ADODB;</P><>type
    " r; N! X0 B0 m% p6 L  TForm1 = class(TForm)7 Q8 }) I) H$ l/ E% b! S$ m
        Edit1: TEdit;
    4 y9 R* r: `4 |1 j. Q    Button1: TButton;: |4 b' ^, G8 }( w! C
        ADOConnection1: TADOConnection;
    1 \0 a" T9 H" O7 L- H    ADOQlinchang: TADOQuery;
    ; d( P' k( Z8 [$ R1 V5 d6 C5 ~    ADOQyinglinqu: TADOQuery;4 \, q0 F, q. P
        ADOQzuoyequ: TADOQuery;
    : ~& ~$ S. z$ p# t/ I    ADOQlinban: TADOQuery;
    1 {9 T8 {9 i. Q( J8 d+ O  ^    ADOQxiaoban: TADOQuery;+ q+ q. ?6 @5 B0 E0 c9 c) N2 g+ q
        ADOQs: TADOQuery;  g+ z% r! K2 `9 F7 Y7 R
        procedure Button1Click(Sender: TObject);- W, K- G% W. R1 M4 r2 m0 ^
      private- g. ?7 `8 |6 l  Q
        { Private declarations }
    . {' d; Z. L" T; ^  public& v5 y4 r7 Y6 E
        { Public declarations }
    . Z3 G5 p+ n5 e9 M2 i  end;</P><>var! H$ X9 S* a8 \) f
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);! a7 \( M% }% @' R2 i% l
    var
    # ?  u$ P% M8 |/ y+ u# Nstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    $ z4 [0 h* q$ Tbegin
    8 t# c* Q9 U, k3 Y/ \; R1 @( hadoqlinchang.Close ;+ |" d( W% K9 N1 R: z
    adoqyinglinqu.Close ;$ }8 r9 Y, e9 Y# W* C
    adoqzuoyequ.Close ;
    & O1 T) T7 `- v: [& H: vadoqlinban.Close ;* S! G/ J" I5 C$ q
    adoqxiaoban.Close ;& u0 y/ Z+ z8 `7 L% P
    adoqs.Close ;! M4 i% W' L" Z; N/ r
    adoqlinchang.SQL.Clear ;) p! m# D6 H& i) V. r
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');" H  t5 d  y9 b7 e- s# b/ n
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;  Q1 s" l9 o7 F0 M/ N; I3 ^
    adoqlinchang.Prepared ;. k9 A. F0 K! G+ c4 `3 j
    adoqlinchang.Open ;
    , P2 \, M# f7 f) |. n  ostrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    - E9 t3 L; U$ y$ \adoqyinglinqu.SQL.Clear ;- ^: e, C- z# M) H' f* @+ Z$ l
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    " \" P6 H* S. H; e1 Cadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    7 Z6 ~2 Y0 o8 h. x+ }adoqyinglinqu.Prepared ;- E8 x$ i$ q) [+ `
    adoqyinglinqu.Open ;
    1 D1 C$ }/ L* h3 |" g5 M" F$ \( g- Xwhile not adoqyinglinqu.Eof! j( O( M2 K2 q6 A( {
    do
    3 k( Y) |# I7 L' s8 j/ T  N* [begin( C! s4 t% F: E! W$ T- O) O
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );) f1 l( n, ]! x) z* h
      strcodeying:=strlinchang+'999'+stryinglinqu;
    8 a( {' s. \9 V; r/ y3 }6 E  ADOQZuoYeQu.SQL.Clear;& D8 W! _+ A8 {& Z; K6 L$ Z
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    ' q& v3 I5 F7 x5 _6 y/ V  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;) t; G. l8 Y+ R/ Z
      ADOQZuoYeQu.Prepared;( R( b5 R4 G) ?! D4 v2 Y) O  J
      ADOQZuoYeQu.Open ;
    5 J3 Z$ r! Q* s5 }- j& L2 F2 t* `  while not adoqzuoyequ.Eof
    ) ]: f) ~' O% F/ A9 A( s  do
    + g( K5 C& W! c/ m2 H7 Y  begin# g" [% d1 N5 G" Q
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    9 b0 ?9 t  H% x* `4 m" N    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;. k6 i  m6 }" K' j% s
        ADOQLinBan.SQL.Clear;
    . K9 g7 P& x& W# A9 S$ {    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');# q0 T# ~, \4 K: n3 E0 w5 U" e) G
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;# e+ M" |# E) S/ K$ q
        ADOQLinBan.Prepared;* ]/ Z8 x4 [8 i/ s7 \
        ADOQlinBan.Open;! w5 s4 ?0 ?& C
        while not adoqlinban.Eof( m6 s  ]# \0 L8 Y# I
        do
    + o/ G. F( N1 l    begin' X1 i7 H2 C" d' J, f: B) J
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    / c; r& a" o  J/ s9 x      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    0 W6 b# J9 N" I; t, Z1 x      adoqxiaoban.SQL.Clear ;4 v  D% ]" ?/ s
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    8 G' `  q. a5 Z0 B- @      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    ; v6 W' `: \8 h* r5 q" m4 V      adoqxiaoban.Prepared ;: T* w- O* }  x
          adoqxiaoban.Open ;5 P& T. r/ J8 Q; G; T$ u
            while not adoqxiaoban.Eof
    , C6 q, m" f& {        do; F( y! X% j5 A) k/ ?% W6 S
            begin
    ' M5 V" T" H! L) {0 ?' [6 h          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    % l- \; ]7 S1 G; X0 E- b( q' P          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;& _- w) S9 V( P% \$ m) m, q. e+ s
              strcode:=strlinban+strxiaoban;1 y, k$ [% R9 Y5 y
              adoqs.SQL.Clear ;
    8 @0 C) U. @% B          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    . D/ A9 R# o5 u* Q. A9 O% _% p          adoqs.Prepared ;
    + g* L; T6 x# P1 m          try2 B3 I( j: _2 K, h2 k$ _
              adoqs.Open ;
    4 g9 i) d, ~+ P* b          adoqxiaoban.Next ;
    7 t1 h5 |4 ^8 m& }6 h5 k9 c          except
    5 ?: k% r. o6 I8 @" Y, N          showmessage('出错!');
    ' `5 S4 U9 v: i+ ?          exit;/ f* B4 A" @/ R9 O2 G! F- g
              end;/ q$ @1 S. F/ C, [  B
            end;
    0 v; t! b" u6 o$ d! |' X        adoqlinban.Next ;! ?9 Q4 N% b3 Y; p# j
        end;* O" g4 {% O$ z! d
        adoqzuoyequ.Next;
    4 E: Y. F& T4 d/ ?, l/ Y  end;$ T8 `1 B; K* \2 j& H% p; S
        adoqyinglinqu.Next ;
    " v( ]3 ]( X7 W/ I, y1 Mend;$ Z5 Y5 K  h/ m( h3 L
      adoqlinchang.Close ;
    ' f5 a$ m. W) v* |! b% o  adoqyinglinqu.Close ;2 p, O4 ]7 G/ ]! V$ |7 X
      adoqzuoyequ.Close ;
    , ~. a* J% k2 y) h+ U  adoqlinban.Close ;- y% G" N! u9 [+ n; V7 }& K4 X; f, A0 g
      adoqxiaoban.Close ;
    7 D3 S. C, o* T9 R& e4 r, a8 o8 x  adoqs.Close ;
    ( K# o$ P% p3 Y7 j: _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 U! F% H$ Y5 O& y4 J% d. o! ~# Avar) h6 q9 O; {& j6 t1 m- a% [
      str1,str2:string;8 ^& @  ?; i+ ^5 X
    begin
    : r+ K! [6 w; |- k+ S- ostr1:='001';
    9 z; m1 e* c+ R( i9 Mstr2:='002';! Z$ E( O6 }+ T' g* ]
    adoquery1.Close ;
    ' S9 k, V" H6 Y" xadoquery1.SQL.Clear ;
    9 Y  V4 g! k& ~" qadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    , z$ M4 s% \; p0 z/ u+ j4 _( [# W0 w0 Eadoquery1.Prepared ;
    ; |9 Q: D2 U4 y3 D( Z; h5 R0 Eadoquery1.ExecSQL ;
    1 H4 w6 K- [( cend;</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-4-18 21:55 , Processed in 0.609996 second(s), 95 queries .

    回顶部