找回密码
 立即注册
搜索
楼主: 开元

DELPHI调用SQL SERVER 的问题

[复制链接]

30

主题

1275

回帖

1732

积分

金牌会员

积分
1732
发表于 2008-4-21 09:29:50 | 显示全部楼层
嘿嘿,那就不知道为什么了,你可以在设计时直接把图片在image的picture属性里load进去运行程序试一下。
回复

使用道具 举报

17

主题

91

回帖

142

积分

海星

积分
142
 楼主| 发表于 2008-4-21 14:24:13 | 显示全部楼层
重新考虑了一下问题,既然每个KH 对应的PHOTO,都是有一样规律的。(例如KH ='000010234',则PHOTO ='E:\PHOTO\000010234.JPEG'   )那么我就在数据库里省略PHOTO字段,而直接用字符串调用(这样还可以在插入过程中少查一个字段,o(∩_∩)o),做了如下代码调整,编译和运行都通过了。

var
  Form1: TForm1;
  s2:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.sql.Add('select name,rqa,rqb,photo from ka where kh='''+edit1.text+'''');
    ADOQuery1.open;
   edit2.text := ADOQuery1.FieldByName('name').AsString;
   edit3.text := ADOQuery1.FieldByName('rqa').AsString;
   edit4.text := ADOQuery1.FieldByName('rqb').AsString;
   s2:='e\photo\'+trim(edit1.text)+'.jpeg';
    //s2:=ADOQuery1.FieldByName('photo').AsString;
                 if fileexists(s2) then
                        image1.picture.loadfromfile(s2);
                       image1.visible:=true;
                 
   end;

end.


========
理论上,我觉得取得数据库里photo字段数据值也是字符串,这样做应该也可以的,但是实际上不行,不知道为什么。
再次感谢楼上给予我的帮助。

[ 本帖最后由 开元 于 2008-4-21 15:12 编辑 ]
回复

使用道具 举报

30

主题

1275

回帖

1732

积分

金牌会员

积分
1732
发表于 2008-4-21 16:57:00 | 显示全部楼层
其实这个问题跟数据库一点关系都没有了,你可以在Button1Click里只写以下代码

image1.picture.loadfromfile('E:\PHOTO\000010234.JPEG' );

如果这样都显示不出来那就是你的delphi的问题了,当然前面要uses jpeg

你也可以在设计期将图片在image的picture里load进去看能不能显示,看问题出在那里。
回复

使用道具 举报

382

主题

1万

回帖

1万

积分

信息监察员

海浩校长

积分
18269
发表于 2008-4-23 00:36:50 | 显示全部楼层
uses jpeg;


procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.sql.Add('select [name],rqa,rqb,photo from ka where kh='''+edit1.text+'''');
    ADOQuery1.open;
   edit2.text := ADOQuery1.FieldByName('name').AsString;
   edit3.text := ADOQuery1.FieldByName('rqa').AsString;
   edit4.text := ADOQuery1.FieldByName('rqb').AsString;
   s2:='e:\photo\'+trim(edit1.text)+'.jpeg';
    //s2:=ADOQuery1.FieldByName('photo').AsString;
                 if fileexists(s2) then
                        image1.picture.loadfromfile(s2);
                  
   end;

end.
Although time and distance separate us, we still remember the purest friendship and blessing.
回复

使用道具 举报

286

主题

6658

回帖

9122

积分

网站编辑

积分
9122
发表于 2008-4-23 14:21:53 | 显示全部楼层
基本没有做过dephi,问个问题,为什么adoquery在使用前先要close?
有苗不愁长
回复

使用道具 举报

382

主题

1万

回帖

1万

积分

信息监察员

海浩校长

积分
18269
发表于 2008-4-26 20:49:41 | 显示全部楼层
adoquery之前是需要先close的,没有错
Although time and distance separate us, we still remember the purest friendship and blessing.
回复

使用道具 举报

17

主题

91

回帖

142

积分

海星

积分
142
 楼主| 发表于 2008-6-11 14:26:51 | 显示全部楼层

神啊 帮帮我 我已经被IF then搞晕了

本问题中 表KA 中增加 GS ---- 逻辑是否型 (可能问题出在这里,MS SQL2000里没有这种类型,我选择了bit型)
现在要求增加两个判断
1  假如 RQB 早于 当前日期  则提示 卡片已过期
2  假如 GS = 1   则提示 卡片已挂失
3  无论卡片是否已过期 卡片是否已挂失 都完成窗体内容 (包括显示照片)

===========
我写了很多,要么该出提示的不出提示,要么除了提示就不干活了(完成窗体内容)
神啊 ,帮帮我吧
谢谢先
回复

使用道具 举报

708

主题

2547

回帖

3066

积分

论坛元老

积分
3066
发表于 2008-6-13 05:47:23 | 显示全部楼层
貌似 很简单 随便改了下 没编译不知道行不 提供一个想法而已
var
  Form1: TForm1;
  s2:string;
  gsw:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.sql.Add('select name,rqa,rqb,photo,gs from ka where kh='''+edit1.text+'''');
    ADOQuery1.open;
   edit2.text := ADOQuery1.FieldByName('name').AsString;
   edit3.text := ADOQuery1.FieldByName('rqa').AsString;
   edit4.text := ADOQuery1.FieldByName('rqb').AsString;
    gsw := ADOQuery1.FieldByName('gs');
   s2:='e\photo\'+trim(edit1.text)+'.jpeg';
    //s2:=ADOQuery1.FieldByName('photo').AsString;
                 if fileexists(s2) then
                        image1.picture.loadfromfile(s2);
                       image1.visible:=true;
   
           if    ADOQuery1.FieldByName('rqb').AsDateTime < now  then
                              showmessage('卡已经过期');
                       if gsw = '1'  then
                              showmessage('卡已挂失');
                 
   end;

end.

[ 本帖最后由 xeen 于 2008-6-13 06:03 编辑 ]
上帝给了我们七情六欲,我们却把它们变成了色情和暴力。
回复

使用道具 举报

114

主题

3024

回帖

4254

积分

论坛元老

积分
4254
发表于 2008-7-8 18:14:03 | 显示全部楼层
原帖由 guaguatou 于 2008-4-23 14:21 发表
基本没有做过dephi,问个问题,为什么adoquery在使用前先要close?

估计因为查询的时候都是open,一般如果习惯好的话,在后面应该会有close再退出的,但是为了避免出现没有关闭然后再次open的时候出现错误,所以要先close
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-15 01:38 , Processed in 0.095989 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表