delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks

#

为什么用web service 无发保存上传信息 ? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124085636269.html
用web   service   做的一个保存所有上传信息的方法,  
  在CGI的模式下成功,部署在IIS上就出问题,  
  那位大虾知道怎么回事?  
   
  IIS的默认文件夹在FAT32盘下,并且有所有的权限,包括  
  访问脚本资源。  
  用的Tstringlist收集信息,都成功,但是在保存的时候  
  出错(Try到了出错信息)怎么办???

顶顶~

保存的异常出错?   那你知不知道你用TStringList收集的信息是不是你想要的?

没问题,  
  刚才又写了个回传调用,把收集的信息传回来,  
  都没问题。  
  仅仅在保存的时候出错了。。。  
  郁闷~~~~

搞定。  
  是权限问题。

posted @ 2009-05-26 17:27 delphi2007 阅读(119) | 评论 (0)编辑 收藏

idtcp通讯问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061123210413270.html
idtcp通讯时在idtcpserver的onexcute事件中是不是有些语句不能正常执行?  
  我直接用socket进行通讯就可以正常执行.  
  而放到idtcp中就不能正常执行   why?
posted @ 2009-05-26 17:27 delphi2007 阅读(201) | 评论 (0)编辑 收藏

quickreport 加急!!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215134604291.html
我想是数据字段名和数据字段在同一行显示可以实现吗?  
  由于数据字段很多,设计成表格的形式可以吗?  
  怎样实现打印指定的一条数据记录?

在数据字段前加qrylabel

怎样实现打印指定的一条数据记录?

posted @ 2009-05-12 16:03 delphi2007 阅读(192) | 评论 (0)编辑 收藏

一个很难解决的问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215131443292.html
两个表分别都用query1和query2   datasource1和datasource2   dateset1和dataset2连接起来了,其中query1的datasourece属性又写为datasource2.  
  这样做的目的是为什么呀?  
   
  我在修改表结构后,在网格中找不到增加的字段,是否这个原因造成的呀?  
   
  我已经用程序往增加的字段里写了信息,现在只要能用grid显示出来就行了,  
  query的connectstring是用动态的。  
   
  各位大虾多给点意见哦~~急哦~~  
 

这个要刷新Grid的  
  >   修改表结构后,在网格中找不到增加的字段

很新的新手   呵呵后

这样的问题,别人告诉你如何如何都是没用的,你现在最好要做的就是多动手试验,试验不同的效果,然后从这种效果中分析代码的作用,再返过来根据代码去推断效果。

顶楼上的~~~~~~~~

多谢各位的意见~~  
   
  我再多试试,  
   
  也许有很多还不能理解,努力中~~

query1的datasourece属性又写为datasource2  
  ------------------------------------------  
   
  这个没必要设置吧?

最好用一个adoconnction直接连接起来  
  固定用两步就行了  
  adoquery.connection:=adoconnction  
  datasource.dataset:=adoquery    
  这样就完成了连接 如果想要查询的话就可以直接在adoquery的sql语句下操作

这个问题帖出来很久,但没人给我一个很适当的回答,  
  不知道是不是我没有说清楚,看来很难结帖啦  
   
  xiezhenghai()    
  谢谢你认真的指导,你说的我明白。但我现在是问问题,如果哪位有心回答我的问题,可以自己按我的说法去试试,看看结果  
   
  wudi_1982(闲半年了,要挣点钱过年了!)    
  我自己试过了,是有不同的情况发生,好象不能完全理解,想找大家探讨清楚  
   
  多谢楼上各位了~

posted @ 2009-05-12 16:03 delphi2007 阅读(163) | 评论 (0)编辑 收藏

DBGRID分组显示 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215112306293.html
我想做一个表格,里面的数据可以按照某一个字段进行分组。  
  例如:  
      原数据如下  
          外科检查               皮肤                   正常                    
          外科检查               淋巴结               无肿大  
          内科检查               胸廓                   正常  
          内科检查               心音                   无异常  
   
      按照如下方式显示  
          外科检查  
              皮肤                   正常                    
              淋巴结               无肿大  
          内科检查  
              胸廓                   正常  
              心音                   无异常  
   
  在网上查,Devexpress可以做到。但是下载安装后,发现与FASTREPORT冲突  
  那位能用用dbgrid实现这个功能,如果有别的控件能实现也可以,谢谢!  
  另:最好标题行能设置焦点不停留  
 

只会用两个dbgrid实现  
 

dxGrid(cxGrid)   和   FastReport   有什么冲突吗?

qzmp_sc(你是白云~我是乌鸦)  
          用两个dbgrid如何实现,能详细说明吗

cngram(阿琦)  
        我重装delphi三次了,每次装任意一个控件都是好的,可是再装完另外一个在打开delphi界面,就剩下最后装的那个控件相关东西了

cxGrid可以。  
  你安装devexpress大全,那种安装,一次性安装所有的组件。

是你控件安装有问题  
  或者装了有问题的控件  
  不是有冲突

xjjrocker(了无痕)  
        我只找到分开安装的控件包,哪里有一次性安装所有的控件包下载  
        麻烦给个连接

另外,我这两个控件包单独安装的时候都是好的。为什么不能一起装呢

为什么不用stringgrid显示呢,我觉得这个问题很好解决啊,用两个dbgrid也得啊,我也做过这个,只是达不到想像中的效果.

拜托大家能讲的详细点吗,用什么控件,怎么实现?/小弟刚入行

posted @ 2009-05-12 16:03 delphi2007 阅读(521) | 评论 (0)编辑 收藏

简单问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215102418294.html
var  
      strsql:string;  
      temp:string;  
   
      temp:=edt1.text;  
      strsql:='select   *   from   人事档案   where   部门='+''南京分公司\\''+temp';    
      qry1.close;  
      qry1.sql.clear;  
      qry1.sql.add(strsql);  
      qry1.open;  
   
  我的意思是执行一条sql   语句:  
            select   *   from   人事档案   where   部门='南京分公司\\temp'          
  老是报错,估计是逗号问题,怎么办?

strsql:='select   *   from   人事档案   where   部门='+''南京分公司\\''+temp';  
   
  不报错就希奇了  
   
  你这   南京分公司\\   和   temp   都是什么??

给你写好!  
  var  
      strsql:string;  
      temp:string;  
  begin  
      temp:=edt1.text;  
      strsql:='select   *   from   人事档案   where   部门=%s\\%s';    
       
      qry1.close;  
      qry1.sql.text:=format(strsql,['南京分公司',temp]);  
      qry1.open;  
  end;  
  搞定!

这样写即使正确也容易把人搞糊涂:  
  strsql   :=   'select   *   from   人事档案   where   部门='+''南京分公司\\''+temp';    
  我喜欢下面的写法:  
  strsql   :=   'select   *   from   人事档案   where   部门='   +   #39   +   '南京分公司\\'   +   temp   +   #39;    
   
 

strsql:='select   *   from   人事档案   where   部门='+'''南京分公司\\temp''';    
 

posted @ 2009-05-12 16:03 delphi2007 阅读(124) | 评论 (0)编辑 收藏

关于在2个界面上操作数据库中同一个表的问题, Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215093921295.html
表名:   table    
  字段:   姓名(文本)、电话(文本)、公司(文本)、目前所在地(布尔型,本地和外地)  
   
  现在有2个界面,界面1   和   界面2      
  两个界面都放有DBGird   和3个按钮(添加、修改、刷新)  
   
  我现在在界面1里添加一条数据为   (张三     0451     新浪     外地)到数据库里  
  但是界面2刷新后不显示此数据,只有当在界面1里把该数据修改为   (张三   0451   新浪   本地)后  
   
  ,再在界面2里刷新才能看到,  
  相反在界面2里添加数据也同样效果。  
   
  这2个界面的代码怎么写。    
  ------------------------------  
   
 

用2个ADO分别连接这2个dbgrid吧,刷新时候同时刷新2个就可以

我是用2个ADO分别连的,我在界面1里面添加的数据修改和不修改,界面1里都能看到,  
  但是对于界面2,只有界面1修改了才能看到,否则看不到. 反过来也一样.

菜鸟的方法:设定你的TADOQuery或TADOTable按时间刷新

你用哪个方法刷新?

刷新了看不到?我还没遇到过。不过最简单的办法就是2个dbgrid公用一个数据源,连刷新都不用了。

grid1、grid2共用一个数据源  
  将grid2的filter设为:目前所在地=本地  
   
  或  
   
  用2个ado连接,在dataset的afterpost事件中刷新另一个dataset  
  在ado2的语句中   where   目前所在地=本地

我现在在界面1里添加一条数据为   (张三     0451     新浪     外地)到数据库里  
  但是界面2刷新后不显示此数据,只有当在界面1里把该数据修改为   (张三   0451   新浪   本地)后  
   
   
  你确定数据已经入库了码????  
   
  如果入库,刷新就应该读的到(除非代码有问题)  
   
  刷新的时候,最好关掉,再打开,例如adoquery1.close;adoquery1.open;

另外一种方法,你把Adoquery放到datamodual中,让两个窗口同时引用datamodual,使用同一个datasource和adoquery   来处理。这个不需要刷新,能同步看到。

呵呵,   看老冯的高级方法:  
   
  运用观察者模式,轻松搞定。

另外一个方法就是API消息传递:  
  把数据库记录定义为record.   当A写入一条记录时,   将记录通过PostMessage发送给B,   反之亦然。相比观察者模式,这个方法破坏了封装。

什么意思?就是说界面1显示[目前所在地]为本地的,界面2显示[目前所在地]为外地?

requery()

没有提交数据吧?  
  你要用事务来控制,这样数据才能一致

1   两个界面共用一个ADOQUERY  
  2   其中一个改变后发消息给另一个窗体,让它刷新  
  3   不要绑定,数据库访问用一个对象封装,其它对象ADD   DEL   UPDATE   都通过它,它记录所有访问的窗体,有变化时通知全部刷新。  
 

posted @ 2009-05-12 16:03 delphi2007 阅读(260) | 评论 (0)编辑 收藏

求installshield Express 4.0或10.0 中文包,无限感激!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215090258296.html
昨晚   用installshield   4.0   打包了一个安装文件,结果发现中文名字的文件都不能copy,后来一直没在网上找到相应的中文补丁,希望看到的手里有这个文件的能发到我邮箱。无比感激,邮箱:easonjun729@yahoo.com.cn

没人有吗?

有installshield   6.21的东方语言包,不过即使不安装eastpack,只不过是界面是英文的,没有发现不能copy中文名文件的情况,可能是is4.0的版本太低。

我用的是delphi   7自带的installshield   ,6.21的语言包   估计不行吧

posted @ 2009-05-12 16:03 delphi2007 阅读(306) | 评论 (0)编辑 收藏

我的贴子怎么结不了帐 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215022753297.html
我的贴子怎么结不了

帖子地址?

揭帖时,你要点选有效回复人前面的复选框;  
  然后在后面的分数编辑框中给出分数;  
  所有点选人的分数总和应跟你帖子分数一致;over

楼上正解  
   
  完毕

吓顶

posted @ 2009-05-12 16:03 delphi2007 阅读(128) | 评论 (0)编辑 收藏

!!!超难问题:如何让多个客户端的数据保持同步刷新? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061214230143298.html
有十个左右的客户端   同时操作同一组数据  
  在某个时间点某个客户修改或删除其中的一个数据  
  如何让其他客户端即时看到修改后的结果.  
  请问大家在Delphi   或   .net   中有没有实现的方法!  
   
  我已经倾家荡产   如能解决   感激不尽~  
  如来广州我请吃饭。

添加一个服务器程序,让所有的数据请求都通过这程序执行。  
   
  将所有的数据请求封装,用户访问时记录每一个用户,当后面的用户做了修改时就给当前访问这个请求的用户发送消息,让它刷新数据。  
   
  得用SOCKET来通信。

我设想的一个不成熟的想法,,不对别笑偶...  
  在数据库中加个表,为每个客户端加个标志位,当有人修改过数据后就改变所以客户端的标志位,在客户端定时查询自己的标准位,发现改变就立即更新,然后恢复自己的标志位...同时要想修改数据库必须先查询标志位,符合要求才能修改

顶一下,我也有类似问题。

可是,如果对标志位过段的判断会影响效率,占用过多的网络资源。  
   
  不知道你的程序是做什么用的,非要把把有的客户端数据同步,其实,如果是C/s程序,当用户操作的数据不存在,或者出现多步修改都是可以检查到的,处理起来也容易些的。

关于同步的问题,没有最好的解决方法,  
   
  有些同步是没有必要的或者次要的  
   
  非要同步,那么消耗点资源,定期从数据库刷新数据。  
   
  机灵点的,就避开数据操作同步的问题  
 

posted @ 2009-05-12 16:03 delphi2007 阅读(305) | 评论 (0)编辑 收藏

cxGRID能否对模板进行保存 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061214182808299.html
因为cxGRID有很强大的查询和统计功能,我想用cxGRID做一个查询软件,由于单位的数据库中的表特别多,并且还在不断增加表,所以我想做一个这样的查询,在FORM上放置一个cxGRID控件,根据用户的查询表名取出数据库中该表的数据,然后再在程序的配置文件中获得与该表名相对应的配置文件,该配置文件保存我设计的cxGRID的格式信息,这些格式信息是我在设计时保存的,在以后的工作中,我只需要不断增加不同表与之相对应的cxGRID的格式信息就可以满足查询需求了,而不需要经常改动程序,同时,这样还可以减少许多FORM,减少体积和出错的机率。      
  虽然在cxGRID中有cxGRID1DBTableView1.RestoreFromIniFile('DW.ini');      
  cxGRID1DBTableView1.StoreToIniFile('DW.ini');      
  的语句,但是有些表需要双表头,有些需要单表头,请问通过在FORM上放置一个cxGRID能够通过cxGRID的配置文件实现表现不同的数据表吗?      
  谢谢

可以的  
   
  procedure   TfrmProdQry.piStoreToFileClick(Sender:   TObject);  
  begin  
      ActivecxGrid.ActiveView.StoreToIniFile(FAppIniFile.IniFileName,   False,   [],   ActivecxGrid.ActiveView.Name   +   '@'   +   Self.Name   +   YourTableName);  
  end;  
   
   
   
  procedure   TfrmProdQry.piRestoreFromFileClick(Sender:   TObject);  
  begin  
      ActivecxGrid.ActiveView.RestoreFromIniFile(FAppIniFile.IniFileName,true,   false,  
      [gsoUseFilter..gsoUseSummary],   ActivecxGrid.ActiveView.Name   +   '@'   +   Self.Name   +    
  YourTalbeName);  
  end;

谢谢cncharles(旺仔)  
  YourTalbeName   是指的什么?是打开的数据表名吗?比如我是从adoquery1中取得数据该如何写YourTalbeName   呢?

cncharles(旺仔)您好!  
          特使未通过

cncharles(旺仔)您好!      
  测试未通过,请明示。  
  谢谢

YourTalbeName:   你的表名称.

谢谢旺仔  
  我的问题是如果我在FORM上放上一个cxGRID,在这个cxGRID上不做任何操作,而是打开数据源,然后在通过  
  ActivecxGrid.ActiveView.RestoreFromIniFile(FAppIniFile.IniFileName,true,   false,  
      [gsoUseFilter..gsoUseSummary],   ActivecxGrid.ActiveView.Name   +   '@'   +   Self.Name   +    
  YourTalbeName);  
  调入我以前设置的配置文件,系统会出现错误。  
  请旺仔大侠再看看如何做,我另外开贴给分。  
  再次感谢

晕,   先要把所有的数据打开一次并且执行SaveToFile,   YourTableName要正确并且不能重复.  
  以后每次打开数据源之前都要调用RestoreFromIniFile

唉,小弟愚笨,怎么也试不通,如果可能,我发邮件给您,请您报忙做一个简单的例子,谢谢

posted @ 2009-05-12 16:03 delphi2007 阅读(586) | 评论 (0)编辑 收藏

开发个人轻量级数据库引擎 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061214173952300.html
我计划开发一个个人轻量级数据库引擎,用于一些特殊场合.  
  目前,已经用基于散列表的方式做了一个简单的.100W个记录的关键字查询时间,最慢不到0.5秒.   第一次做,没什么经验.希望找些志同道合者,一起讨论学习.

啊啊  
  我也想做啊  
  同志啊(不是那个同志)  
  偶现在有个问题是,跟外存打交道这个问题,怎么减少这个损耗,楼主有什么好主意没?

只是用一个散列表吗?  
  如果目标只是100W,还好些,LZ想过4,294,967,296(High(Cardinal))亿条记录怎么进行检索没?我觉得要么不作,要作就作到32位的最大检索范围.

解释器楼主准备怎么做呢?  
  有什么计划吗?  
  可以具体说说吗

因为我理解的轻量就是:一个简单的结构(record),有检索,增加,修改,删除的功能就可,数量最好是1000W->1亿左右,其它功能就不需要了.最多一个将这个结构Load/Save的功能.  
   
  楼主如果有兴趣,可以一块弄弄.俺早就想弄了.

对,尽量减少读写磁盘的次数.  
  表本身目前采用记录文件的格式,其本身维护一个删除链表.对删除的记录只做删除标记,然后加入到删除链表中.新加入的记录首先选择这个删除链表的头节点,有点类似栈的结构.  
  对记录的管理采取散列的桶方式,这种方式是最适合存放在磁盘等持久存储设备上的.  
   
  目前100W没什么问题,更大的还没测试.估计到1亿问题不大,再上去就没把握了.  
 

不需要解析什么所谓的SQL之类的功能  
  因为只是用于一些场合,因为需要大量数据,但又不想依赖于DB,当然速度也要考虑,所以,自己弄一个轻量的结构处理就可以了.楼主如果是想写一个数据库,有什么解析SQL语句,还有一堆功能的话,俺就没兴趣了,直接看MySQL的源码得了.

解释器的问题是下一步.先把底层的功能都做全了.在考虑解释器的问题.

一般来说.目前这些流行的数据库,我们真正用到的功能还不到40%.   而且,如果想搞点保密措施,目前的虽然提供了加密功能,毕竟是公开的.安全性不如自己定义的强.

我现在的问题是,有点类似ACCESS的问题.   大家都知道,ACCESS的数据库文件是会越来越大.除非自己专门压缩一次.   这是由于尽量减少读写磁盘次数,保护磁盘而选择的算法造成.  
   
  我现在因为对删除的节点只做删除标记.对数据量的增大到没什么问题,就是如果数据量大幅删除,就会有造成很多容余空间.除非也象ACCESS一样,另外压缩一次.

这个应该不是问题,即使不解决问题也不大,最多像OS一样,定时给文件整理一下也成.  
  如果你后期想弄,可以这样弄一下,不过好像会产生一堆的碎片到是:  
      每一块(记录)在文件保存的地方,增加长度和标志位,估计你那都有.   增加的时候,检查那个已经删除的块,如果增加块小于删除块,则将增加块写入删除块,并将剩余的空间再建一个删除块,这样,删除块的体积就少了.   不过到后面可能这个删除块就会像碎片一样越来越多,好像就是增加的体积相对慢些.

做为技术研究到是不错.可以得到很好的经验.  
   
  实际应用中还是用最通用最简单的方式.

不支持SQL怎么查呀。多表联合就不好查了吧。

用FireBird的嵌入式RDBMS。  
 

fb支持嵌入式数据库了么?fb是我见过最好的轻量级dbms

这个应该不是问题,即使不解决问题也不大,最多像OS一样,定时给文件整理一下也成.  
  如果你后期想弄,可以这样弄一下,不过好像会产生一堆的碎片到是:  
      每一块(记录)在文件保存的地方,增加长度和标志位,估计你那都有.   增加的时候,检查那个已经删除的块,如果增加块小于删除块,则将增加块写入删除块,并将剩余的空间再建一个删除块,这样,删除块的体积就少了.   不过到后面可能这个删除块就会像碎片一样越来越多,好像就是增加的体积相对慢些.  
  ------------------------------------------------------------------------------------  
   
  对,这个我实现的基本跟你说的差不多。好象,这个碎片是不可避免的。好在我用的散列方式是把最近增加的尽量的靠近,尽量符合外存的读写方式。  
   
  至于SQL,目前到不是最急的,多表联合也能实现,只是麻烦点。  
  FireBird的RDBMS不了解,它是什么方式实现的?  
 

做为技术研究到是不错.可以得到很好的经验.  
   
  实际应用中还是用最通用最简单的方式.  
   
  -----------------------------------------------------------  
  我这个就打算在实际中用。因为有些数据需要不希望别人了解。自定义的数据库是比较好的方式。

FireBird的嵌入式RDBMS,还没有连接到exe中,是一个DLL,不需要配置。  
 

FireBird的嵌入式RDBMS,还没有连接到exe中,是一个DLL,不需要配置  
   
  ---------------------------------------------------------------------  
   
  它的引擎是什么原理?

数据需要不希望别人了解可也用不着开发一个数据库吧.有太多的加密方式了.你们头听到都要气死了,项目维护可是一个大问题。  
   
  保密要求更高一些的数据难道要开发一个操作系统不成。  
   
  技术研究可以,实际项目中不建议使用,会造成很多时间放在这上面,而在业务和设计方面投入时间会变少。

数据需要不希望别人了解可也用不着开发一个数据库吧.有太多的加密方式了.你们头听到都要气死了,项目维护可是一个大问题。  
   
  保密要求更高一些的数据难道要开发一个操作系统不成。  
   
  技术研究可以,实际项目中不建议使用,会造成很多时间放在这上面,而在业务和设计方面投入时间会变少。  
   
  ------------------------------------------------------------------  
   
  走极端了.这个开发数据库引擎是因人而异.当然,时间和效率的问题已经在考虑的范围内.  
   
  本身就是一个轻量级的引擎,维护时间不会很多.既然已经在做了,你说的问题当然早已考虑过了.  
   
  所以,我开这个贴不是讨论应该不应该做,而是讨论怎么做的好.希望多给点技术方面的意见.谢谢.

楼主可以参考:absolute,DBISAM,NexusDB等,都是Delphi写的,NexusDB吹的比Oracle还牛呢。

NexusDB的优点就是可以直接连接到exe中,但是没有FireBird的嵌入式版本好用。  
 

FireBird   是做得最好的.  
   
  几乎所有的数据库功能都有  
  表,外键,视图,过程,触发器,UDF  
   
  总之好用,实用  
   
  我给公司做的一个项目管理系统也用它来做的.   还可以.   体积小,功能强  
  现在出最新的   2.0   版了.

楼主可以参考:absolute,DBISAM,NexusDB等,都是Delphi写的,NexusDB吹的比Oracle还牛呢。  
  -------------------------------------------------------  
   
  多谢提供的信息,不知道他们是不是开源的?哪有源码?

......嘿嘿     偶不知道   顶北京猴

mak

Firebird   是开源的

posted @ 2009-05-12 16:03 delphi2007 阅读(304) | 评论 (0)编辑 收藏

数据提取和曲线问题? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217223148251.html
因为发现数据量太大而且有时数据长时间不变化,为了节约资源我把实时数据存盘改为有变化存盘。  
  如原数据库:  
  ID         etime                                   evar  
  -----------------------------------  
  1           2006-12-7   18:00:00         18  
  2           2006-12-7   18:00:10         23  
  3           2006-12-7   18:00:20         23  
  4           2006-12-7   18:00:30         23  
  5           2006-12-7   18:00:40         27  
  6           2006-12-7   18:00:50         21  
  ……       ……                                           ……      
   
  优化后的数据库:  
  ID         etime                                   evar  
  -----------------------------------  
  1           2006-12-7   18:00:00         18  
  2           2006-12-7   18:00:10         23  
  3           2006-12-7   18:00:40         27  
  4           2006-12-7   18:00:50         21  
  ……       ……                                           ……      
   
  我现在碰到数据提取的问题。  
  1。要求在grid表上要显示每一时间的数值,就象查原数据库一样。  
   
  2。在用chart做曲线时就和用原数据库画出来的曲线完全不同。用原数据库时从10"到30"是水平线,从30"到40"是陡斜线,用新库后就把从10"到30"是水平线给省去了。  
  而且如果是从2006-12-7   18:00:20开始查询,这一段也没有的。求一解决办法!!  
   
  另:用chart做出来的曲线,严格来说只是折线,有什么好用的能做出象股票那样真正曲线的控件。

每10秒钟一个数据?

 
   
  我也正在做这样的项目.每一秒彩集一次数据,要求一年的采集量,一共三千万条记录,  
  让我头痛了好多天.  
  我现在采用的方法是,做三百六十五个表,每个表保存一天的量,结果每个表只有八九万条记录.  
  在每天的午夜零点的时候把下一个表清空用来装批这一天的记录.i当用户选择定某天的时候,先不要将存放这一天记录的所有值都显示出来,而只从数据库中取出显示CHART显示区的那些数据.  
  每当用户按前进,或后退的时候,再从数据库中调出下一部分.  
   
  和我的比较起来,我觉得你的量不算大.到底用实时数据存盘还是有变化存盘,要根据用户的要求来定,而不要自己决定如何采集..  
  我的QQ:358920471  
 

posted @ 2009-05-12 16:02 delphi2007 阅读(196) | 评论 (0)编辑 收藏

这段代码什么意思啊? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217214802252.html
procedure   TForm3.RadioButton3Click(Sender:   TObject);  
  begin  
  ADOTable1.refresh;  
  with   ADOTable1   do  
  try  
      disablecontrols;  
      filtered:=false;  
      memo1.Text:=memo1.Text+''''+edit1.Text+'''';  
      filter:=memo1.text;  
      filtered:=true;  
  finally  
      enablecontrols;  
  if   ADOTable1.recordcount=0   then   begin  
  messagebeep(1);  
  showmessage('没有符合的,请确认条件或放弃查询!');  
  if   messageDlg('是否继续查询?只有结束查询才能作其它操作!',mtinformation,[mbYes,mbNo],0)=mrno   then   begin  
      filtered:=false;  
  ADOTable1.close;  
    ADOTable1.open;  
  end;  
  end   else   begin  
    if   messageDlg('是否继续查询?,只有结束查询才能作其它操作!',mtinformation,[mbYes,mbNo],0)=mrno   then   begin  
      filtered:=false;  
  ADOTable1.close;  
  ADOTable1.open;  
  end;  
  end;  
  end  
   
  是个查询按扭的操作,用ADO连接的ACESS数据库.可是能不能具体的说一下每句的意思啊.挺多看不懂的..  
  谢谢..

这个就是通过选择条件让ADOTable用过滤器来查找数据的

filter:=''是过滤条件  
  filtered是过滤的方法,用法类似locate

谢谢..

posted @ 2009-05-12 16:02 delphi2007 阅读(184) | 评论 (0)编辑 收藏

求救高手,如何过滤字段值为空的记录,在线等,很急 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217171642253.html
FILTER:='字段名'=NULL不行?如何写?  
   
 

FILTER:='字段名=NULL'  
 

FILTER   :=   '字段名   IS   NULL'

FILTER   :=   '字段名=NULL'

XX   IS   NULL   and   XX=''''       XX代表字段名

不好意思写错了   是   XX   IS   NULL   Or   XX=''''       XX代表字段名  
 

posted @ 2009-05-12 16:02 delphi2007 阅读(224) | 评论 (0)编辑 收藏

老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217121231255.html
用的TClientDataSet  
  保存如下  
  var  
    tempClient:TClientDataSet;  
    tempJpeg:TJPEGImage;  
    tempStream:TMemoryStream;  
    ....  
  begin  
    ....  
    tempJpeg.LoadFromFile('d:\1.jpg');  
    tempJpeg.SaveToStream(tempStream);  
    tempClient.CommandText:='Insert   Into   myTest     (ImageID,ImageSize,Image)   values(:ID,:Size,:ImageData)';  
              tempClient.Params.ParamByName('ID').AsInteger:=tempID;  
              tempClient.Params.ParamByName('Size').AsInteger:=tempStream.Size;  
              tempClient.Params.ParamByName   ('ImageData').LoadFromStream(tempStream,ftGraphic);  
      //此时的stream的大小和1.jpg的大小一致。stream的大小为447244  
      tempClient.Execute;  
  ....  
  end;  
   
  读取  
  var  
      tempClient:TClientDataSet;  
  begin  
      tempClient:=TClientDataSet.Create(nil);  
      try  
          tempClient.CommandText:='select   ImageSize,Image   from   MyTest   where   ID   =1   ';  
          tempClient.Open;  
          if   not   tempClient.FieldByName('Image').IsNull   then  
          begin  
              TBlobField(tempClient.FieldByName('Image')).SaveToStream(tempStream);  
              //这里发现我读取得到的tempSteam和原始的jpeg文件大小不同。把流保存到一个文件中,发现数据根本不对,原始文件大小为447244,从数据库得到的stream大小为550262  
          end;  
      fianlly  
          ...  
      end;  
  end;  
   
  数据库为SQL   2000,用的是ADO连接

试试直接保存和读取看看  
  tempClient.Params.ParamByName   ('ImageData').LoadFromFile('d:\1.jpg');  
   
  TBlobField(tempClient.FieldByName('Image')).SaveToFile('d:\1.jpg');  
   
 

谢谢。  
   
  回xxmmmx(踢踏)   (   )   直接loadFromeFile和SaveToFile的结果一样。  
  SaveToFile保存的新文件仍然变大了。数据也变了  
 

我测试了一下。   没有问题的。但我用的是ADOQuery;  
   
  var  
      tempJpeg:TJPEGImage;  
      tempStream:TMemoryStream;  
  begin  
      tempStream   :=   TMemoryStream.Create;  
      tempJpeg   :=   TJPEGImage.Create;  
      tempJpeg.LoadFromFile('C:\1.jpg');   //原文件大小148884Byte  
      tempJpeg.SaveToStream(tempStream);  
      ShowMessage(FloatToStr(tempStream.Size));   //148884Byte  
      tempQuery.SQL.Text:='Insert   Into   TImage(ImageSize,Image)   values(:Size,:ImageData)';  
      tempQuery.Parameters.ParamByName('Size').Value:=tempStream.Size;  
      tempQuery.Parameters.ParamByName('ImageData').LoadFromStream(tempStream,ftGraphic);  
      tempQuery.ExecSQL;  
  end;  
   
  procedure   TFormDemo.BExportClick(Sender:   TObject);  
  var  
      tempJpeg:TJPEGImage;  
      tempStream:TMemoryStream;  
  begin  
      tempStream   :=   TMemoryStream.Create;  
      tempQuery.SQL.Text:='Select   Image   From   TImage   Where   ImageID   =   1';  
      tempQuery.Open;  
      TBlobField(tempQuery.FieldByName('Image')).SaveToStream(tempStream);  
      ShowMessage(FloatToStr(tempStream.Size));   //148884Byte  
  end;

另外把xxmmmx(踢踏)的建议也测试了一下  
   
  写入  
  tempQuery.Parameters.ParamByName('ImageData').LoadFromFile('C:\1.JPG',   ftBlob);  
   
  读出  
  TBlobField(tempQuery.FieldByName('Image')).SaveToFile('C:\2.JPG');  
   
  结果完全一样。很正确('C:\1.JPG'和'C:\2.JPG'完全一样)

你用TClientDataSet呢看看呢。  
  我用的是TClientDataSet。  
   
  是不是TClientDataSet不支持呢?工程里都用的是TClientDataSet。晕。

我这么用过是没问题的  
  Ado+DataSetProvider+TClientDataSet  
   
  例如:  
  保存  
          if   cdsERFiles.IsEmpty   then  
          begin  
              cdsERFiles.Append;  
              cdsERFiles.FieldByName('RecID').AsString:=trim(owExamineRepairID.Text);  
              cdsERFiles.FieldByName('State').AsInteger:=0;  
              cdsERFiles.FieldByName('Type').AsInteger:=0;  
          end   else  
              cdsERFiles.Edit;  
          cdsERFiles.FieldByName('FileName').AsString:=ExtractFileName(OpenDialog.FileName);  
          TBlobField(cdsERFiles.FieldByName('FileContent')).LoadFromFile(OpenDialog.FileName);  
   
          cdsERFiles.ApplyUpdates(0);  
   
  读出,保存成文件:  
          sFileName:=sFileName+'\'+cdsERFiles.FieldByName('FileName').AsString;  
   
          TBlobField(cdsERFiles.FieldByName('FileContent')).SaveToFile(sFileName);  
          if   FileExists(sFileName)   then  
              ShellExecute(Handle,'open',PChar(sFileName),nil,nil,SW_SHOWNORMAL)  
   
 

posted @ 2009-05-12 16:02 delphi2007 阅读(364) | 评论 (0)编辑 收藏

Dephi故障,浏览器控件与ADO冲突,无法解决吗? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217104641256.html
用ADO与WebBrowsewer开发一套文档管理程序后,若执行IE的方法,则不管执行是否正确,在不关闭程序的情况下,在查询时都会提示:"参数类型不正确,若不在可以接受的范围.若与其它参数冲突".

应该不会,是不是程序哪有问题了

我拿大富翁的离线论坛浏览器来编译出的问题.  
  真郁闷.  
  我的操作系统是windows   2003,装了OFFICE2003,MDAC2.8,不知道会不会有影响?

顶一次了,希望有高手能看到。

posted @ 2009-05-12 16:02 delphi2007 阅读(179) | 评论 (0)编辑 收藏

将数据库连接字符串异或操作后存放到INI文件中是否安全?是不是很容易就被别人解密出来? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217102522257.html
rt

看你的软件保存程序了,如果高的话,最好不用,如果不高,应该没事

是保密程度

放在Ini文件里,这样不太安全吧  
  除非是自己内部使用  
  最好是自己做个操作数据库的模块封闭成DLL  
  或者再做个中间层  
  这样会好一点儿吧

不知道异或的保密程度好不好?只要能对付一般用户就可以

用DES加密一下。当然,DES加密时使用的密码只能保存在程序代码中了,这个密码的安全性又是个问题。

做成三层安全性是不是好一些?毕竟客户端用户不能接触应用服务器

三层是最好的,应用服务器在系统管理员那边,密码管理员自己是知道的。

posted @ 2009-05-12 16:02 delphi2007 阅读(292) | 评论 (0)编辑 收藏

请熟悉ECO开发的朋友解答我的一些小问题! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217094559258.html
最近看了ECOIII模型开发的资料。觉得真的有很不错的地方,但是有几点不明白的地方请教大家。  
  1:ECOIII里好像没有了SQL语句的传递。取而代之的是它自己的语法,那么如果我要执行原来复杂的SQL查询怎么办?尤其是统计类的语句。  
  2:ECOIII的程序发布需要什么?

乍看题目,我还以为是CEO搞开发

哈哈哈,我也看了一下ecoiii的资料,确实可以。不过没有搞过相关开发

问题1.ECO的查询就是对象之间的关链的查询,它使用的OCL语言,对象之间的关链有多复杂,你的OCL查询就多复杂,跟sql语句没有关系的.  
  问题2.这个问题你能说清楚点吗?你是想问和其它的应用程序有什么不一样吗?用ECO开发出来的程序跟一般的应用程序是一样的.

使用ECOIII的话,就不需要再去理解SQL语句了,去看看OCL语法,就能明白了。。

posted @ 2009-05-12 16:02 delphi2007 阅读(140) | 评论 (0)编辑 收藏

类似于打开"我的电脑后",左边那竖着的可收缩任务栏的是使用的什么控件?? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217012949259.html
打开我的电脑后,左边不是有任务栏么,可收缩的,我记得有这个控件使用的  
  啥控件啊?有没使用说明介绍的??

mxOutLookBarPro

Devpress   NavBar

posted @ 2009-05-12 16:02 delphi2007 阅读(323) | 评论 (0)编辑 收藏

有如下的代码,有几个地方不清楚,指教~~ Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061217011934260.html
procedure   Tt_main.IntercontrolExecute(Sender:   TObject);  
  var  
      rect1:   Trect;  
  begin  
      if   not   t_interfase.Visible   then  
      begin  
          if   not   Panel3.Visible   then  
              Panel3.Show;  
          t_interfase.Visible   :=   True;  
          Rect1:=   Panel3.ClientRect;  
          ShowInter.Caption   :=   '显示界面';  
          //将窗体t_interfase放入面板中  
          t_interfase.Dock(panel3,rect1);  
          panel3.DockManager.InsertControl(t_interfase,alclient,t_interfase);  
      end  
      else  
      begin  
          ShowInter.Caption   :=   '隐藏界面';  
          Panel3.Hide;  
          t_interfase.Visible   :=   False;  
      end;  
  end;  
   
  Trect是什么类型啊?  
  ClientRect属性是什么意思?  
  t_interfase.Dock(panel3,rect1);这个代码啥意思?

TRect是一个矩形区域,用左上角的点和右下角的点来确定位置  
  ClientRect就是客户区的区域  
  t_interfase.Dock(panel3,rect1);   是将t_interfase这个控件拖放到Panel3上面  
   
  看看这样的代码,应该可以理解是什么意思:  
  var   Rect1   :   TRect;  
  begin  
      Panel1.DockSite   :=   True;  
      Panel1.Color   :=   clRed;  
      Panel2.DragKind   :=   dkDock;  
      Panel2.DragMode   :=   dmAutomatic;  
      Rect1   :=   Panel1.ClientRect;  
      Panel2.Dock(Panel1,   Rect1);  
      Panel1.DockManager.InsertControl(Panel2,alClient,Panel2);  
  end;

我是來頂老之地!

posted @ 2009-05-12 16:02 delphi2007 阅读(144) | 评论 (0)编辑 收藏

关于delphi和sql sever开发出的管理系统运行问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216215656261.html
请问是不是每次运行用delphi做好的管理系统的.exe文件都要先开sql   sever   数据库如果别人机子上没装SQL,我要怎么做才能在别人机子上运行做好的管理系统,而不会报连接不上数据库的错误,麻烦高人指点  
   
  我是用的BDE  
 

顶起,我们做的好像都要开了SQL才得.

那可不行.SQL   SERVER一定要安装和及运行的..

Client端不需要安装SQLSERVER系统。只需要下列几个文件:  
   
  DBnetlib.dll,   dbmssocn.dll,   dbnmpntw.dll,   ntwdblib.DLL  
   
 

这几个文件到哪里找?找到后具体的怎么操作?麻烦高手指点,小弟刚学这个软件,很多东西不会用,如果高手有这几个文件,麻烦传我邮箱里,xmlt238@yahoo.com.cn   ,万分感谢!!!

已发到xmlt238@yahoo.com.cn   ,   请查收

谢谢啊

两种方法:  
  1可以在客户端装sqlservr客户端  
  2可以修改注册表文件 \SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo   这个键值  
    增加一个:数据别名,DBMSSOCN,IP地址,1433       这样的值

客户端装数据库引擎,如:mdac_type.exe(2.7或2.8)

按你的想法类推:我怎么做才能在别人没有安装操作系统的机子上运行.  
   
   
  当然是要安装啦.你的程序最好是用一个安装制作工具打包,连数据库也打包进去。  
   
  用BDE的话设置会麻烦一些。用ADO的话只是连接字符串的设置,将MDAC打包进去就可以了。  
   
  推荐一个叫“肥猫安装制作”的程序用来打包,简单易用。

谢谢各位高手指点

2可以修改注册表文件 \SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo   这个键值  
    增加一个:数据别名,DBMSSOCN,IP地址,1433       这样的值  
   
   
  我修改的:sky,DBMSSOCN,192.168.1.2,1433  
   
  IP地址要根据什么设置?DBMSSOCN设置有错吗?我这样设置可以吗?  
  setup文件我做好了,但必须设置ODBC数据源和在sql   sever   中附加数据库才能运行我做的系统?  
  具体要怎么操作?麻烦各位高手指点,小弟先谢谢各位了  
   
 

IP地址是你的数据库服务器地址  
  sky   是你的数据库别名   应该与你调程序时ado中的一样  
  设完你可以写个小程序测试一下

一定要安装数据库的,要不你修改程序不要连接数据,要不就安装个桌面版的SQL

桌面版的sql在哪里有下载的?我找不到

两种方法:  
  2可以修改注册表文件 \SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo   这个键值  
    增加一个:数据别名,DBMSSOCN,IP地址,1433       这样的值  
  难道你按第二种方法没调试成功,不可能的,我们一直这样做

posted @ 2009-05-12 16:02 delphi2007 阅读(231) | 评论 (0)编辑 收藏

有没有人用ODAC连接数据库的?问个问题? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216215514262.html
我用ODAC连接数据库,在FORMCREATE时间中,打开SQL,一操作就提示什么ADDRESS错误,但是别的按钮事件都没有问题!!  
      不知道问题出在哪里?

这样的问题大部分是因为,实例还没有创建就进行了访问。

楼上厉害啊,我在DPR里面把DM窗体创建放在最前面就可以了!!  
 

posted @ 2009-05-12 16:02 delphi2007 阅读(293) | 评论 (0)编辑 收藏

请教DELPHI问题... Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216214538263.html
用DELPHI做了一个查询的功能.可是第一次查询的时候正常.如果再次查询的话.就会弹出对话框:  
  Project   Project1.exe   raised   exception   class   EDBEngineError   with   message'Operation   not   applicable.'Process   stopped.USE   Step   or   Run   to   continue.  
  我怎么改才能让他不出这个对话框.并能反复查询.是不是那里设置错了?  
  谢谢  
 

你使用F8功能跟踪,看看错误在哪里?  
  这个错误提示:BDE引擎报告的错误:操作不能进行。使用分步执行或者运行继续。

我也遇到过,这个应该是参数没有给对.

posted @ 2009-05-12 16:02 delphi2007 阅读(179) | 评论 (0)编辑 收藏

关于fastreport的问题,急... Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216214227264.html
我安装了3.25版,但我发现在memo中输入的文字只显示一半,该怎么解决?  
  刚开始输入的时候字体是Arial没事,但一改字体就不行了。。。

直接到delphifans找F4.

楼上我担心f4又有新bug,这个问题就没人遇到过吗

我还在用f2,惭愧~~~  
  也有一些问题,真是无人能解吗?

LWWANDVB(编程小子)   你好,F4可以直接用吗?是破解版还是注册版?

难道没人知道吗?不过今天我又试了一次,又没有这个问题了,真是怪事

F4我試了,還是一樣的,   就算作過RES也一樣的,   傷腦筋!!!

posted @ 2009-05-12 16:02 delphi2007 阅读(324) | 评论 (0)编辑 收藏

小弟想做一个应用软件,功能就是对internet上面服务器的access数据库进行读写。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216183200265.html
不知道各位大侠们,给点思路。  
  最好有源码,如果可以,马上送上100分,不够可以多开点贴给你分。

没有人知道么?我自己先…………  
  顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

除非你的数据库服务器上的access所在目录对internet进行共享或做成三层的,否则是不可能实现的  
  第一种方法没任何安全性.第二种有点难度  
  既然要做internet访问,居然还用access数据库,不知道是哪个高手做的方案

明白,那就用sql   server了

用sql   server   在数据的存取速度上面是和哪些因素有关系呢?并且如何解决呢?

这个问题比较大了,能想到的  
  1.首先,肯定与硬件配制有关.当然就是与投资有关  
  2.与网络设计有关  
  3.与数据量有关  
  4.与数据库配制有关(参考一下sqlserver数据库配制手册)  
  5.与表结构设计有关,合理的表结构设计,适当的索引,正确的使用约束和触发器,存储过程等可大大提高查询速度,这个具体要看应用  
  6.与程序员的编写水平有关,特别在写SQL的时候,不同水平的程序员写出的查询效率相差很多  
  ...  
 

如果要读写Web服务器上的Access数据库,可以通过Delphi   +ASP/PHP/JSP等程序来实现,访问数据时,通过ASP/PHP/JSP来间接实现,不过,有些麻烦而已,建议使用SQL   Server。

编写     cgi     用iis服务  
  或者用   intraweb   ..  
  Top   10   Web   Development   Tools  
  http://delphi.about.com/cs/toppicks/tp/aatpwebrad.htm

用   ASP   来生成   xml   ,   Delphi   读,分析   XML   或直接给   ClientDataSet    
   
  OK

posted @ 2009-05-12 16:02 delphi2007 阅读(136) | 评论 (0)编辑 收藏

indy发信,为什么不成功 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216175621266.html
procedure   TfrmMain.btn1Click(Sender:   TObject);  
  begin  
  IdSMTP1.Host   :=   'freemx3.sinamail.sina.com.cn';//'mx.mail.163.split.netease.com';//SMTP.163.com服务器Rs`7`@  
  IdSMTP1.Port   :=25;//服务器端口W63gO8  
  try  
      IdSMTP1.Connect;//建立连接d.  
      except  
        Showmessage('连接SMTP服务器失败!');  
        Exit;  
        end;  
  try  
      with   IdMessage1   do  
        begin  
          body.Clear;  
          Body.add('用户名及密码123');//邮件正文件内容,也可这样Body.Assign(memo1.lines);X+  
          From.address   :='ah_wcw@163.com';//发件人名GY  
          Recipients.EMailAddresses   :='ah_wcw@163.com';//收件人邮箱:"  
          Subject:='用户名及密码';//邮件标题dw{d{  
      end;  
    IdSMTP1.Send(IdMessage1);//发送邮件7c"Xy  
    finally  
    showmessage('您的信件已成功发送');  
    IdSMTP1.Disconnect;//断开连接^DpX  
    end;  
   
  end;

要加一句  
  IdSMTP1.AuthenticationType:=atLogin

情况一样啊,大哥

ASMTP.Host:=FSmtpHost;   //主机  
          ASMTP.Port:=FSmtpPort;   //端口  
          ASMTP.Username:=FSmtpUserName;   //用户名  
          ASMTP.Password:=FSmtpPassWord;   //口令  
          ASMTP.AuthenticationType:=FSmtpAuthenticationType;     //认证模式  
          ASMTP.Connect;  
   
  主要是发信服务器要求身份认证,你要将这些信息填全才行。  
  还有就是要确定主机允许这样发信,我用smtp.tom.com可以,用smtp.21cn.com就不行。你可换着试试  
   
 

为何IdSMTP1.Host   :=   'freemx3.sinamail.sina.com.cn';就不可以,听说新浪对INDY控件发过来的参数有了屏蔽作用,那么怎么才能躲避这个。

以前用的是SendMail组件,好象出现过小问题,但还是不会出现不通过的问题

现在估计mail服务器都不好使用了  
  我blog上也有例子,看看也许能帮助你参考参考.

为了减少垃圾邮件,   smtp服务器都会要求认证吧

posted @ 2009-05-12 16:02 delphi2007 阅读(282) | 评论 (0)编辑 收藏

***************我动态创建的EDIT,怎么给他加 OnChange事件 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216164404267.html
我动态创建的EDIT,怎么给他加   OnChange事件

写个事件付值给它

procedure   EditChange(Sender:   TObject);  
  begin  
      showmessage(Tedit(Sender).text);  
  end;  
   
  var   NewEdit:Tedit;  
  begin  
        NewEdit:=Tedit.Create(self);  
        NewEdit.Parent:=self;  
        NewEdit.SetBounds(10,20,50,21);  
        NewEdit.OnChange:=EditChange;  
  end;

楼上写的基本正确,但稍微有些问题:  
  procedure   TForm1.EditChange(Sender:   TObject);  
  begin  
      showmessage(Tedit(Sender).text);  
  end;

procedure   TForm1.EditChange(Sender:   TObject);  
  begin  
      showmessage(Tedit(Sender).text);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var   NewEdit:Tedit;  
  begin  
        NewEdit:=Tedit.Create(nil);  
        NewEdit.Parent:=self;  
        NewEdit.SetBounds(10,20,50,21);  
        NewEdit.OnChange:=EditChange;  
  end;

delphi   学习群:31469235  
  加入请注明   csdn   字样

posted @ 2009-05-12 16:02 delphi2007 阅读(416) | 评论 (0)编辑 收藏

deplhi 中有没有嵌入式 sql ? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216130200268.html
初学delphi,有个问题请教:  
   
  在多表中查一个数据,在   pb中有嵌入式sql语句,例如   select   a.a   into   :aa,b.b   into   :bb   where   a.sn=b.sn   using   sqlca;   在多表的数据查询中很是方便,在delphi   我是用多个locate   或者lookup才能查到最后一个表中的数据,我又不想使用query,不知大家是用的什么办法   ?

为什么不想用query??没有道理

delphi肯定不支持嵌入式sql,你要用delphi做数据库开发,就要习惯于它的开发方式

posted @ 2009-05-12 16:02 delphi2007 阅读(142) | 评论 (0)编辑 收藏

多表操作比较的问题?在线等待!! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216123719269.html
请大家帮个忙!我有两个数据表:基础数据表(编号,数据类型,数据项目,指标上界,指标下界,标准分)和数据采集表(编号,采集数据,得分,日期),首先要让用户选择数据类型,根据所选的数据类型从基础数据表中提取相应的编号和数据项目录入到数据采集表中,然后让用户在采集数据字段中填上相应的数据,再把所填的这些数据与基础数据表中的指标上界和指标下界进行比较,超过的话对应的标准分就减分,再把这个实际分数写到数据采集表中的得分字段.请问大家在DELPHI中怎么实现呢?能否说一下思路和相应的程序给我参考参考!!!急啊!

思路已经很清楚了。  
  1、你先把指标上届和下届使用查询方式找到,存储在变量中。  
  2、根据用户选择的类型,查询得到所需要的类型和数据。  
  3、通过对比变量进行计算,然后使用SQL语句存储到数据库中。

能否举个例子的程序啊,我是初学者,有思路也不知从何下手!请帮帮忙!

SmallHand(火龍)   所说的我明白,可你可能还不明白我的数据,我那个数据采集表是属于时时记录表方面的,每次记录的数据是与原先不一样的,所以每次都要录入一次数据编号,也就是说只要要录入采集来的数据都要先选择一次数据编号,而这些数据编号都归类成了几个数据类型,所以用户一选数据类型就可以录入相应的数据,然后才能进行比较运算,希望大家帮忙!

你的思路已经很清楚了啊,假如界面上有一个ComboBox,在FormCreate中将[数据类型]填入,  
   
  再找出用户选择的记录select   *   from   基础数据表   where   数据类型=trim(ComboBox.Text)  
   
  再将这些数据填入到相应的Edit中,Edit_BH.Text   :=   DataSet.FieldByName('编号').Value  
                                                                ...(除了得分之外)  
  最后判断指标上下界,设置标准分  
  with   ADODataSet   do  
  begin  
      if     (X   :=   FieldByName('指标上界')-FieldByName('指标下界'))>0   then  
              Edit_DF.Text   :=   FieldByName('标准分')   -   X;  
  end;  
  提交数据  
  with   ADOCommand   do  
  begin  
      try  
          CommandText   :=   'Insert   into   数据采集表   Values(:BH,:CJSJ,:DF,:RQ)';  
          Parameters.ParameterByName['BH'].Value   :=   BH;  
          Parameters.ParameterByName['CJSJ'].Value   :=   CJSJ;  
          Parameters.ParameterByName['DF'].Value   :=   DF;  
          Parameters.ParameterByName['RQ'].Value   :=   RQ;  
          Execute;  
      except  
   
      end;  
  end;

谢谢!

posted @ 2009-05-12 16:02 delphi2007 阅读(134) | 评论 (0)编辑 收藏

仅列出标题
共34页: 1 2 3 4 5 6 7 8 9 Last