QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12707|回复: 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.
6 P4 U7 \8 g+ Y; G) I. p     ' O) ^/ ?4 e4 q, D/ }2 L( \
     while not adoqxiaoban.Eof4 ^3 g' G4 D! {# \- C4 k& H
     do
/ A) F1 Q9 P" B; ^7 h/ X     begin
% W2 Q" g- V; I! E     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
/ M+ L- _% J7 x$ c+ }: q     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
7 ~8 ~% Z& O- b) l6 m+ m     strcode:=strlinban+strxiaoban;$ `: R+ e) h/ K4 L9 w- p( V; y
     adoqs.SQL.Clear ;
7 @9 O+ T0 w6 u     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');0 q# v. L. n% l/ A( x- a
     adoqs.Prepared ;
- z* y" ~4 Q2 }5 m     try1 s4 b! g. _& a2 a- f
     adoqs.Open ;
4 E' l  R6 k- h     adoqxiaoban.Next ;4 M7 u8 t9 D9 Y' y4 Z) F/ i: o
     except8 S/ }( a$ y: V
     showmessage(''出错!'');
- o$ v3 t1 o! ^) R1 F* W! M     exit;* H( N) u+ h0 N4 g
     end;. h3 g2 g% w; G. j
     end;
* t! ~" I& k* O     adoqlinban.Next ;. h) |0 @& W% t; x2 A# u) e/ V
     / |6 u$ V. Q& q- j) u0 ?
     这是其中的一段代码 好像出错的就是在这 在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 ;( s! a' N+ r1 M& |$ |9 Z
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    , J" |8 r8 g, c. S& v  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,3 T- x% D) U0 ]- r! v0 |5 R1 G3 b
      Dialogs, StdCtrls, DB, ADODB;</P><>type
    / Y8 F3 _+ c, M4 f# N" w: y  TForm1 = class(TForm)
    8 ~0 [( M( q) d/ t! S% w    Edit1: TEdit;
    : X2 \/ R" `& s) a3 W4 {, J1 y    Button1: TButton;
    / j# z; g- _3 F; c0 \% H6 d. c, s    ADOConnection1: TADOConnection;
    + {, d1 ^2 g! d6 S* U    ADOQlinchang: TADOQuery;) H7 y: G; S( u3 a$ d3 C# x
        ADOQyinglinqu: TADOQuery;& i% N3 W& V1 u( _: t7 Q
        ADOQzuoyequ: TADOQuery;5 p0 J/ ?' W8 i8 s$ [
        ADOQlinban: TADOQuery;
    ) |- [+ B5 t, C2 d0 t: J; u    ADOQxiaoban: TADOQuery;; o8 _( U5 ]( j- U% ^
        ADOQs: TADOQuery;* H  u9 A! a7 }
        procedure Button1Click(Sender: TObject);
    9 _- f0 a1 |9 ?1 G; Y  private( }# O+ b" r' {" M+ \
        { Private declarations }
      E+ N- U$ I% |  public6 v$ K$ c+ K7 W# |5 p8 a
        { Public declarations }& }* f% B4 E# i' H$ [# T9 ^  S
      end;</P><>var
    : E) x5 l4 W% d5 \  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);, q3 P( @0 W4 b! i/ l( n9 R- f
    var
    ( m/ q  l8 x3 ?- A) vstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    * t  g7 g) w: G! C- U- Hbegin) Q! l. X9 q2 u9 W. j
    adoqlinchang.Close ;0 x% s. P5 v, b! j0 Y0 |2 R
    adoqyinglinqu.Close ;& f, X+ w5 [5 }+ S' D9 I
    adoqzuoyequ.Close ;; S- z! v7 Q; i+ L6 h0 p8 k+ d9 P
    adoqlinban.Close ;
    * H) e* J# F* c1 n( fadoqxiaoban.Close ;
    ( G& [; w! G4 L0 H" ~% gadoqs.Close ;$ G$ Z2 Z5 ~( f1 b) D% k4 a  E
    adoqlinchang.SQL.Clear ;
    4 v2 X( z, x! T6 q4 r% N( t) xadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    4 L% K% Q! H& e8 }; b8 Kadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;* |; F8 F% c1 Q
    adoqlinchang.Prepared ;
    4 x% C# I0 I' _! Y' Vadoqlinchang.Open ;8 O5 L1 d( j% [1 b- T
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    ( d/ z2 L* p2 R1 ^4 R, D) P# eadoqyinglinqu.SQL.Clear ;6 O, I1 x5 @& I6 p& Q
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');5 p, c) P" V0 x0 Y: y$ h+ \( y9 o
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    & |1 [' k9 z+ a0 a4 Nadoqyinglinqu.Prepared ;- ]. K8 i% v7 k3 {8 d4 @/ r
    adoqyinglinqu.Open ;
    * x# ^' c) w4 F9 p) E, d2 B$ ?while not adoqyinglinqu.Eof
      m9 g- n0 z0 r4 B# o8 }do1 p, Q6 [2 n4 x8 T8 J/ q
    begin) b+ ^! o& t/ m/ ^% H- `
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    * X: A9 z5 [, @+ I  strcodeying:=strlinchang+'999'+stryinglinqu;
    ! P0 e+ _5 ^6 x8 F  ADOQZuoYeQu.SQL.Clear;7 D* M- T7 Z- A! b) F' V& c
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');8 U( E: d; l" ~9 G$ F7 {! N
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;' ~% E- }' R' A, z
      ADOQZuoYeQu.Prepared;
    $ M0 c1 Q! W; ~2 h2 N  ADOQZuoYeQu.Open ;
    ! ^4 j/ z( Q) F' V4 U  while not adoqzuoyequ.Eof/ o3 _* a' F. o' f2 ]  t8 z
      do0 N, u: H# q, _# |  [; H
      begin1 {# J2 p) F$ i, d+ r
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    9 j. Z" _2 ~! [' N( h    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;, q! Y4 h. |( n( E/ I' S
        ADOQLinBan.SQL.Clear;
    9 Q' O2 ]% p/ x( E    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    & \. `& R- ]% t1 T0 ~$ R6 m    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    : V' r: h  b; h- }2 F    ADOQLinBan.Prepared;
    " b2 v2 M2 d) R+ x; \0 q    ADOQlinBan.Open;' N$ {4 L+ j* G. @
        while not adoqlinban.Eof
    . _$ b# `9 `8 ^    do
    9 h$ f, N0 y9 f* S$ }8 y6 c    begin
    ) O+ O5 Q7 n; P- m( D5 ?5 l; K      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    7 }5 ^! Y5 C6 f- p& Z      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;5 e$ d! T( z, I) i% J
          adoqxiaoban.SQL.Clear ;* J# d: `% \$ u0 F; R- k
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    3 j+ K+ }$ x1 h9 i5 A% q) }$ f      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    + t9 Z. ^1 o% ?% ]8 E9 j      adoqxiaoban.Prepared ;: s7 e* {* C- L, w; Y) m) @
          adoqxiaoban.Open ;1 @7 m$ L: m6 b- n! i# b
            while not adoqxiaoban.Eof3 P/ o4 s( U6 B: L9 S  b& b% U% E
            do- `# R: h, Z* K0 D- t* e4 P
            begin! T* V/ c; T0 S. ~
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    2 C6 b0 \: b  v) M4 Q" L5 q          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    % U0 k# h) g8 U4 p! s3 n          strcode:=strlinban+strxiaoban;& }5 t! `; a6 P
              adoqs.SQL.Clear ;
    $ W! P9 Y5 d% r2 s4 [& d; |$ @1 G* z          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    * X1 ?5 X! `" X, R" f' c3 p9 ?          adoqs.Prepared ;' U- x& b( [5 n
              try
    # D- `5 w3 t1 S1 m. V          adoqs.Open ;
    ' X/ x1 _  F7 U1 @          adoqxiaoban.Next ;
    # I$ u0 {/ ?2 `# B' W1 l          except
    ) L, {! s, p8 D$ ~0 h/ a/ X' N          showmessage('出错!');: Y& _/ ~/ d0 b1 J3 U
              exit;8 o+ ~2 x% g" A5 Q& s9 Q
              end;* o/ y* G0 _8 z% H% A/ G0 P5 ^
            end;
    0 r; x' ]" ]- F& R: F        adoqlinban.Next ;- c! I9 F! o5 k" f5 ^
        end;, S- Q1 B7 Q: Q; A
        adoqzuoyequ.Next;
    9 M0 x: `; X" H# Q4 G' u3 u8 Y  end;; k" D) s- d$ ~9 g/ o" [7 x
        adoqyinglinqu.Next ;
    9 X7 U6 h$ f# Rend;0 f, ~* p6 |6 {5 K) }" Y( [
      adoqlinchang.Close ;
    5 K' u& G- Q0 l0 |) ~; f' ~. I  adoqyinglinqu.Close ;) Q9 L  o' R9 U7 W) a+ Y
      adoqzuoyequ.Close ;
    0 v! e0 U3 _7 H- r  adoqlinban.Close ;2 q' e" s: D% @! k! r" t6 i8 z
      adoqxiaoban.Close ;/ O3 d0 u, F+ O" }- Q
      adoqs.Close ;
    ' m) d. Z) f9 [) t0 Z( Dend;</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);" Q2 L% M6 _& S5 ^+ c$ Z
    var/ ?) g" t6 V# f, F5 |2 m+ x0 F
      str1,str2:string;% h5 e# ~4 o( L9 I$ y/ P
    begin
    ! P% J% |4 R. G0 E8 L6 |1 n8 ?str1:='001';7 ], b7 S2 H9 h; \& B
    str2:='002';( F# a' E2 x7 I4 X+ q
    adoquery1.Close ;' M, x' C' B9 V+ P4 w
    adoquery1.SQL.Clear ;8 ?# |/ j/ w  G: x2 R  t
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    8 S5 m0 Y# r  n# o" _+ K& w' O' ?( Kadoquery1.Prepared ;2 h; B& H1 K! i8 Q
    adoquery1.ExecSQL ;+ b3 Z2 Z( F$ O9 G% W6 b
    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, 2025-11-17 21:14 , Processed in 0.974090 second(s), 98 queries .

    回顶部