QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13055|回复: 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.$ j* E* }7 v+ w0 J- m7 `) }
     - ]& ?# b; p) i& n: A
     while not adoqxiaoban.Eof
# w9 y$ X6 T4 w% J% Q  F     do1 t( |& p7 L( c5 B. O. f- L
     begin
) p+ s1 ?/ J. O$ d9 M     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );# W6 ^- g7 {0 }) Z$ U, M0 c
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;+ |0 M2 q' i  E& m. E+ @
     strcode:=strlinban+strxiaoban;
. u  g5 {6 M# [0 x6 u  t     adoqs.SQL.Clear ;0 V# t, _- Z- T5 d( A! e
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
4 w, m( ?; C+ |! B8 H* B- X& q     adoqs.Prepared ;( x) o2 C. I0 I1 B# A# ]5 \0 a! _
     try! S: K% {- O* L. ]. [0 g
     adoqs.Open ;5 A/ R. n& a8 v% M( m0 o( t
     adoqxiaoban.Next ;
$ d1 ^- {9 ]1 O     except1 J# ]; Y) h; ?+ q0 ]2 M' {
     showmessage(''出错!'');5 T0 N5 C8 H/ H
     exit;
4 H& u% |" S0 B     end;6 H1 b* M: A' q$ Q' }
     end;5 [: q* V" s+ |4 l* O* @
     adoqlinban.Next ;
1 {) i% W% U- F5 E; ~1 y     . B, |$ g' E- n+ [7 z3 r9 L
     这是其中的一段代码 好像出错的就是在这 在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 ;$ C  k# p/ T' R
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    / V) B% E6 d7 E2 Z6 [: j" t  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    # {" U* P& G, H  Dialogs, StdCtrls, DB, ADODB;</P><>type
    , M' N8 N! ~$ F" e9 d: ~! V$ U  TForm1 = class(TForm)' z3 Q! i$ E* o. d
        Edit1: TEdit;
    , A* o; E9 w( C, S    Button1: TButton;
    7 V; S2 b" i! b) Q) e0 U8 @    ADOConnection1: TADOConnection;
    8 U" w0 n/ s$ ^& u    ADOQlinchang: TADOQuery;% |1 l' j! w4 W5 t3 q: Q
        ADOQyinglinqu: TADOQuery;: y6 L5 g% g9 X- O5 }: L+ c3 _+ |
        ADOQzuoyequ: TADOQuery;9 {( i  i3 V' q
        ADOQlinban: TADOQuery;
    . b% ~0 s+ _* f6 R    ADOQxiaoban: TADOQuery;
    , B; u+ a9 i7 J& b6 Q9 q    ADOQs: TADOQuery;& ]! R% _/ R4 G# W
        procedure Button1Click(Sender: TObject);
      r( ]( a1 W, A' ?' f  private& k: A4 ^9 Y4 Z3 N- z: {
        { Private declarations }
    % r1 D9 f3 v; @  public  Z5 K: p3 Q6 i) g8 L
        { Public declarations }$ `3 K6 z! g$ f2 t4 H+ e6 E
      end;</P><>var# g5 E2 Q8 U, n7 }5 i
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);- k+ T& V( G4 y  Z# B1 ^
    var
    - Z9 V8 c4 B1 s$ P9 Cstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    , _7 I/ E) O+ b7 Gbegin- a1 Y" L- J6 u1 _) P1 G) Q$ q6 V
    adoqlinchang.Close ;4 l; T( W- `. a, o% W' v% ^& {: Q
    adoqyinglinqu.Close ;
    * Z6 ]' i& r2 |3 T/ A8 \3 c! oadoqzuoyequ.Close ;: k4 x) E8 f' t3 I
    adoqlinban.Close ;
    + C) W" J1 E" @, `" i  @( d9 Gadoqxiaoban.Close ;' X1 J; G% }- ?. V5 u+ W* v
    adoqs.Close ;$ z! {4 Y& M" M$ j
    adoqlinchang.SQL.Clear ;; U9 ?4 z' _# \  e5 e( }$ y
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    % V' B) P& ^: j; tadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;  [% O. U3 m1 p) B
    adoqlinchang.Prepared ;
    " g. y2 A% g' E5 N9 y- E2 Dadoqlinchang.Open ;6 P. \* N, H; T+ |: r
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );: t3 c" H! {. g+ ]4 w
    adoqyinglinqu.SQL.Clear ;
    1 F9 S. N9 N! J8 n* `' [adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    # g0 I# C  D& K9 U* ]- r/ @! madoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;$ o6 X( T- [3 O2 S% G0 r
    adoqyinglinqu.Prepared ;) L. W1 E* L4 s; e' Q% o) S3 {
    adoqyinglinqu.Open ;
    - R+ P9 r5 F- Nwhile not adoqyinglinqu.Eof
    3 g7 O1 p0 g) v/ F' T: K& d, K1 ?do( ]% e6 M" N/ ?& w! d. y* h
    begin
    6 ^+ X* V, ~. D4 b  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    + K5 H6 u! [  j  _$ N: _  strcodeying:=strlinchang+'999'+stryinglinqu;) V8 I' O# _& r& N; m
      ADOQZuoYeQu.SQL.Clear;
    1 W9 u5 l$ d4 R1 N8 a, P  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');. }/ l: l" a: `, A! {! f* D
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;+ F  p7 L; Z5 ]; W$ ?5 {
      ADOQZuoYeQu.Prepared;- {- Q5 w" }( b  f7 q
      ADOQZuoYeQu.Open ;
    $ I. _0 c3 A1 Z5 Y# G  i  while not adoqzuoyequ.Eof( L# F) f' J- _- y
      do
    9 }/ }, |* `! e- G3 [  begin, [4 A9 L5 b6 @( U( {, x( X- V
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    2 e  Q' x) \9 s5 A# s, ]    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;  p: }! a: W# C+ _* b# @
        ADOQLinBan.SQL.Clear;
    - P2 i/ L/ L5 S1 r7 K    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');* _1 p( ?$ E  L1 s
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;( {& @5 H. L9 {9 z$ m# `
        ADOQLinBan.Prepared;! ^9 c6 n3 H. _9 e6 ?2 G) `6 e
        ADOQlinBan.Open;
    0 h. F2 `. d8 t' z* Q2 f" R    while not adoqlinban.Eof% D9 t$ ~2 i7 C9 ?  k( `) r
        do
    ) C5 J) H" l7 {: L! D- b& q    begin
    5 s; o& L+ ], \2 Q9 ^  |2 }      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );! B3 a8 b2 l  t( S1 E' O
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    / \  r7 h  F9 z- [5 a/ @- C      adoqxiaoban.SQL.Clear ;
    : t0 Z8 ~" M' }$ f: u" ]% x      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');  t6 P; K& u- f7 ^: V, K
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;! U9 t' q: n& J/ q- V
          adoqxiaoban.Prepared ;& U! Z% v$ [4 a* D7 s& c
          adoqxiaoban.Open ;
    ( ^; p3 g" L6 |3 [! u! k        while not adoqxiaoban.Eof7 @! ~! M8 f, y% F& Z
            do
    5 M0 [. Q4 S+ A. Q% K% S8 E        begin8 m( }! c: Z& \& d7 p: ?
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );# U0 @/ j# F  Q! y8 P) F0 _4 |  g  |
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;; o0 z. T6 T/ t/ c
              strcode:=strlinban+strxiaoban;4 S3 H6 S, V: k& Y* k6 u
              adoqs.SQL.Clear ;  l3 \8 s+ j3 b2 M  N( s& Q, J
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');5 @7 J( c3 G+ C' o7 O! P0 p% g
              adoqs.Prepared ;
    , `$ U6 d3 J  J; d          try+ {4 C) b/ B5 K2 E
              adoqs.Open ;. f* I  m( D/ [0 d
              adoqxiaoban.Next ;! C2 h6 S9 x! A5 R+ L# l
              except' j/ o& l7 N+ M! t' G$ ~+ o
              showmessage('出错!');) }7 U0 P3 C/ @
              exit;
    ; S. E6 T  {+ C$ P+ A          end;$ S. X- F; M7 t, H' C5 z
            end;
    : a: J! R, R6 T        adoqlinban.Next ;; h  f# G1 H& t/ i& Y7 S- A
        end;
    + f* Q8 f7 r2 Y3 r6 [1 l" ?    adoqzuoyequ.Next;4 a# x/ V' b% `) C* A  x
      end;4 S" D4 Z" A8 o5 t) K) H2 y
        adoqyinglinqu.Next ;+ d4 j& [' _; @% w9 j
    end;
    " }* X- R. `- V- J  Q  adoqlinchang.Close ;
    7 Y5 x, I0 V  h2 @, s3 R9 E' |2 Y  adoqyinglinqu.Close ;
    % n% n% G! ?9 a+ r* S0 }  adoqzuoyequ.Close ;
    , [4 y- l1 w8 K' ]  adoqlinban.Close ;* M3 P5 N9 }: j
      adoqxiaoban.Close ;; _6 F7 t6 [  T2 \4 s
      adoqs.Close ;
    ; Z! I1 K( K* w8 eend;</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 l2 z# Q1 S5 C. Y
    var
    6 Z+ G- P" q  u  U, L& i  str1,str2:string;
    : W4 S- M, w: B% hbegin% y  A0 o  c# ^+ D  Q1 j
    str1:='001';( {" Q1 m" t& f# t5 ~! l0 F
    str2:='002';) Q. I6 ?- M( t! ?3 y! G
    adoquery1.Close ;% }7 N$ G  ?/ H: H
    adoquery1.SQL.Clear ;
    0 m% p; p8 t" y, ?+ kadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    6 k( z5 o; s7 M, D( @* h2 X2 Uadoquery1.Prepared ;5 k# T. H2 W, p3 }: x: v4 u2 q8 N
    adoquery1.ExecSQL ;
    6 U/ C" c( I2 q) \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-19 14:06 , Processed in 1.215742 second(s), 97 queries .

    回顶部