我爱builder

C++Builder 程序员博客

已知进程句柄,想统计进程的内存和CPU使用情况

试试

Heap32First这个函数,

Heap32Last…

这个和枚举系统进程那两个函数用法差不多

我先试试,非常感谢!

http://www.2ccc.com/article.asp?articleid=4150
这个是别人彷任务管理器做的.你可以看一下…

  • Filed under: C++ Builder
  • 问题1:

    在插入新数据时,如果数据表中原来有和相同的数据,就用一个对话框提示,信息的数据重复!

    问题2:

    在信息查询时,如果没有满足查询条件的记录,就有一个对话框提示,没有查到相应信息!

    问题3:

    在信息查询时,如果有5条满足条件的记录,就用一个对话框提示,满足条件的信息有5条!

    SQL2000数据库。假设数据表的名称为工号表,字段为:工号。

    每个问题20分。麻烦各位帮忙!谢谢!!

    问题1用1楼的方式效率比较低,可靠性差,其增加了代码的复杂度,应该是对不可重复的数据字段建立唯一索引,直接执行插入sql语句,遇到重复记录时会报错,程序直接拦截错误并判断错误类型,如果是记录重复则显式
    问题2/3其实是一回事,就是检查返回结果的记录数,如果是只检查满足条件的记录数(不要记录的数据),可以用select count(*) from 工号表 where 工号=?

    楼上的兄弟,以你的看法以下的代码有什么错误?麻烦你帮我修改一下!!谢谢!!

    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
            ADOQuery1->Close();
            ADOQuery1->SQL->Clear();
            //ADOQuery1->SQL->Add("insert into 员工信息表 () values ()");
            ADOQuery1->SQL->Add("insert into 员工信息表 (民族,性别,部门,办公室,学历,政治面貌,职位,职称,婚姻,开户银行,姓名,工号,年龄,籍贯,住宅电话,手机,办公室电话,家庭住址,身份证号,毕业学校,银行卡号,奖金,工资) values (:minzu,:xingbie,:bumen,:bangongshi,:xueli,:zhengzhimianmao,:zhiwei,:zhicheng,:hunyin,:kaihuyinhang,:xingming,:gonghao,:nianling,:jiguan,:zhuzhai,:shouji,:bangongshidianhua,:jiatingzhuzhi,:shenfenzhenghao,:biyexuexiao,:yinhangkahao,:jiangjin,:gongzi)");
            ADOQuery1->Parameters->ParamByName("xingming")->Value=Edit1->Text;
            ADOQuery1->Parameters->ParamByName("gonghao")->Value=Edit2->Text;
            ADOQuery1->Parameters->ParamByName("nianling")->Value=Edit3->Text;
            ADOQuery1->Parameters->ParamByName("jiguan")->Value=Edit5->Text;
            ADOQuery1->Parameters->ParamByName("zhuzhai")->Value=Edit6->Text;
            ADOQuery1->Parameters->ParamByName("shouji")->Value=Edit7->Text;
            ADOQuery1->Parameters->ParamByName("bangongshidianhua")->Value=Edit8->Text;
            ADOQuery1->Parameters->ParamByName("jiatingzhuzhi")->Value=Edit9->Text;
            ADOQuery1->Parameters->ParamByName("shenfenzhenghao")->Value=Edit10->Text;
            ADOQuery1->Parameters->ParamByName("biyexuexiao")->Value=Edit11->Text;
            ADOQuery1->Parameters->ParamByName("yinhangkahao")->Value=Edit12->Text;
            ADOQuery1->Parameters->ParamByName("minzu")->Value=ComboBox1->Text;
            ADOQuery1->Parameters->ParamByName("xingbie")->Value=ComboBox2->Text;
            ADOQuery1->Parameters->ParamByName("bumen")->Value=ComboBox3->Text;
            ADOQuery1->Parameters->ParamByName("bangongshi")->Value=ComboBox4->Text;
            ADOQuery1->Parameters->ParamByName("xueli")->Value=ComboBox5->Text;
            ADOQuery1->Parameters->ParamByName("zhengzhimianmao")->Value=ComboBox6->Text;
            ADOQuery1->Parameters->ParamByName("zhiwei")->Value=ComboBox7->Text;
            ADOQuery1->Parameters->ParamByName("zhicheng")->Value=ComboBox8->Text;
            ADOQuery1->Parameters->ParamByName("hunyin")->Value=ComboBox9->Text;
            ADOQuery1->Parameters->ParamByName("kaihuyinhang")->Value=ComboBox10->Text;
            ADOQuery1->Parameters->ParamByName("jiangjin")->Value=Edit4->Text;
            ADOQuery1->Parameters->ParamByName("gongzi")->Value=Edit13->Text;
            ADOQuery1->ExecSQL();
            if(ADOQuery1->RecordCount>0)
            {
                    Application->MessageBoxA("信息已经存在","提示");
            }
            //if(ADOQuery1->RecordCount>0)
            //{
            //        MessageBox(0,"已经存在!","提示",MB_OK);
            //}
            Application->MessageBoxA("信息添加成功!","提示");
            //ShowMessage("信息添加成功!");
            //ADOQuery1->Open();
    }

    这个代码调试没有错误,但是一用来操作,就提示错误!

    什么时候沦落到改错的地步了,哎!
    Inser和select能一样吗?既然你已经插入了,记录肯定有了,你还查个屁。

    楼上的兄弟,我把我的意思重新说一下吧!

    我是想,在插入前做检验,如果重复了,就提示信息已存在。如果不重复,就执行插入,并提示插入成功!

    不是早已经告诉你了吗????????????????????????????

    C/C++ code
    void __fastcall TForm2::Button1Click(TObject *Sender) { ADOQuery->Close(); ADOQuery->SQL->Clear() ; ADOQuery->SQL->Add("select 工号 from 工号表 where 工号 = :gonghao"); ADOQuery->Parameters->ParamByName("gonghao")->Value = Edit1->Text;//Edit中的数据为要录入或查询的 ADOQuery->Open() ; if(ADOQuery->RecordCount==0) { MessageBox(0,"不存在!","提示",MB_OK); ADOQuery1-> Close(); return; } ADOQuery1-> Close(); ADOQuery1-> SQL-> Clear(); //ADOQuery1-> SQL-> Add("insert into 员工信息表 () values ()"); ADOQuery1-> SQL-> Add("insert into 员工信息表 (民族,性别,部门,办公室,学历,政治面貌,职位,职称,婚姻,开户银行,姓名,工号,年龄,籍贯,住宅电话,手机,办公室电话,家庭住址,身份证号,毕业学校,银行卡号,奖金,工资) values (:minzu,:xingbie,:bumen,:bangongshi,:xueli,:zhengzhimianmao,:zhiwei,:zhicheng,:hunyin,:kaihuyinhang,:xingming,:gonghao,:nianling,:jiguan,:zhuzhai,:shouji,:bangongshidianhua,:jiatingzhuzhi,:shenfenzhenghao,:biyexuexiao,:yinhangkahao,:jiangjin,:gongzi)"); ADOQuery1-> Parameters-> ParamByName("xingming")-> Value=Edit1-> Text; ADOQuery1-> Parameters-> ParamByName("gonghao")-> Value=Edit2-> Text; ADOQuery1-> Parameters-> ParamByName("nianling")-> Value=Edit3-> Text; ADOQuery1-> Parameters-> ParamByName("jiguan")-> Value=Edit5-> Text; ADOQuery1-> Parameters-> ParamByName("zhuzhai")-> Value=Edit6-> Text; ADOQuery1-> Parameters-> ParamByName("shouji")-> Value=Edit7-> Text; ADOQuery1-> Parameters-> ParamByName("bangongshidianhua")-> Value=Edit8-> Text; ADOQuery1-> Parameters-> ParamByName("jiatingzhuzhi")-> Value=Edit9-> Text; ADOQuery1-> Parameters-> ParamByName("shenfenzhenghao")-> Value=Edit10-> Text; ADOQuery1-> Parameters-> ParamByName("biyexuexiao")-> Value=Edit11-> Text; ADOQuery1-> Parameters-> ParamByName("yinhangkahao")-> Value=Edit12-> Text; ADOQuery1-> Parameters-> ParamByName("minzu")-> Value=ComboBox1-> Text; ADOQuery1-> Parameters-> ParamByName("xingbie")-> Value=ComboBox2-> Text; ADOQuery1-> Parameters-> ParamByName("bumen")-> Value=ComboBox3-> Text; ADOQuery1-> Parameters-> ParamByName("bangongshi")-> Value=ComboBox4-> Text; ADOQuery1-> Parameters-> ParamByName("xueli")-> Value=ComboBox5-> Text; ADOQuery1-> Parameters-> ParamByName("zhengzhimianmao")->Value=ComboBox6->Text; ADOQuery1-> Parameters-> ParamByName("zhiwei")-> Value=ComboBox7-> Text; ADOQuery1-> Parameters-> ParamByName("zhicheng")-> Value=ComboBox8-> Text; ADOQuery1-> Parameters-> ParamByName("hunyin")-> Value=ComboBox9-> Text; ADOQuery1-> Parameters-> ParamByName("kaihuyinhang")-> Value=ComboBox10-> Text; ADOQuery1-> Parameters-> ParamByName("jiangjin")-> Value=Edit4-> Text; ADOQuery1-> Parameters-> ParamByName("gongzi")-> Value=Edit13-> Text; ADOQuery1-> ExecSQL(); }

    注意顺序!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    在任何时候ADOQuery1->ExecSQL();都应该放在try……catch语句中,并且在catch语句中检查可能出现的错误,其中包括非重复索引冲突,但由于不同的数据库,甚至不同的数据库引擎可能报错的错误号不一样,所以自己要调试一下才晓得

    6楼的兄弟,我说的是如果,记录已经存在那么提示,记录已经存在,不是让它检索提示不存在!!

    要俺老命
    if(ADOQuery->RecordCount>0)
      {
            MessageBox(0,"存在!","提示",MB_OK);
            ADOQuery1-> Close();
            return;
      }

    RecordCount仅仅用于查询结果返回的记录数,不能作为ExecSQL影响的记录数,ExecSQL本身就有返回值
    算了,还是再看看资料后再编程吧,如果在学习过程中这个样子尚且让人恼火,如果是在工作中,可以预见这个项目是多么的糟糕

    呵呵,直接DBGr控件吧

    上面答案已经很明确了,问题一的解决方法有两个,1是先查询一下,看要插入的数据是不是存在,存在的话就提示,不存在的话就插入。2是插入的时候用try catch 来捕捉错误,如果是主键重复就提示错误。
    问题二、三就就直接判断查询的结果记录数就行了,根据返回的记录数来做相应提示。

    该回复于2008-07-10 02:40:17被版主删除

  • Filed under: C++ Builder
  • 招聘C++人才
    工作内容:
    搜索引擎相关程序开发与维护
    职责要求:
    1 精通C/C++程序设计,对C++有深入的了解,用C++开发过比较大型的项目。
    2 熟悉搜索引擎的基本原理,对基于互联网信息处理技术有过研究。
    3 熟悉SQLServer数据库编程、TCP/IP网络编程
    4 喜欢钻研,对算法感兴趣;头脑灵活、清醒,有较强的领悟能力。

    工作地点:北京五道口
    工作形式:兼职 /全职
    有意者请发邮件到:sunjiao@iichiba.com  对搜索引擎不熟者不要

    顶                  一                下

  • Filed under: C++ Builder
  • 两个DAT文件,1.DAT和2.DAT ,我要把1.DAT文件中的十行信息,保存到2.DAT中,但是要求1中的信息保存到2中时,1的第一行信息改为10,第二行信息改为15,第三行信息改为5,以此类推.请高手指点
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    TStringList *a=new TStringList();
      TStringList *b=new TStringList();

      a->LoadFromFile("D:\\1.DAT");
      b->LoadFromFile("D:\\2.DAT");

      int Lines= b->Count+a->Count-1;
                b->Strings[0]=Lines;
      for(int i=0;i <a->Count;i++){
        b->Add(a->Strings[i]);
        }
      b->SaveToFile("D:\\2.DAT");
    }

    不明白

    用insert方法。

    我现在1.DAT文件中有10行信息,比如第一行是123,第二行中是345,等等,现在要求复制到2.DAT中,但是第一行的123要改成1,第外行中345要改成5,就是这样.谢谢

    我是个菜鸟,能请高手写的详细点么?

    问题已经解决
    现在又有新的难题了,麻烦高手过来解决下

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    TStringList *a=new TStringList();
      TStringList *b=new TStringList();

      a->LoadFromFile("D:\\1.DAT");
      b->LoadFromFile("D:\\2.DAT");

      int Lines= b->Count+a->Count-1;
                b->Strings[0]=Lines;
      for(int i=0;i <10;i++){
        a->Strings[0]="20 20";
        a->Strings[1]="20 20";
        a->Strings[2]=12;
        a->Strings[3]=13;
        a->Strings[4]=10;
        a->Strings[5]=35;
        a->Strings[6]=27;
        a->Strings[7]=28;
        a->Strings[8]=29;
        a->Strings[9]=22;
          b->Add(a->Strings[i]);
    }
      b->SaveToFile("D:\\2.DAT");
    }
          现在2.DAT中已经有数字进去,但是,我现在要判断1.DAT中的信息,如果1中第一行和第三行写的是..,那么这几行就不显示到2中,其他的显示,谢谢

    用SaveToFile方法的话,可以先将不准备显示的行删除,然后再保存。

    我是个菜鸟,高手能写下代码么?
      谢谢了

    for(int i=0;i <10;i++){
      if  (a->Strings[0]="–"){
        a->Strings[0]=00;}
                      {
                  else
        a->Strings[0]="20";}
      我想通过上面的if来判断,不知道代码应该怎么写,上面写的错的.

    ***************************************************************************

    思想决定行动,行动决定习惯,习惯决定命运.
    程序员在深圳QQ群,交流产生思想碰撞.

    部份专业群:
    程序员在深圳c++群15195967
    程序员在深圳英语学习群:23864353
    程序员在深圳c++Ⅱ17409451
    程序员在深圳嵌入式开发群37489763
    程序员在深圳移动开发群31501597
    程序员在深圳创业群33653422

    部份高级程序员群:
    高级群I:17538442
    高级群II:7120862

    部份初、中级程序员群:
    第三群:2650485
    第五群:29537639
    第四群:28702746
    第六群:10590618
    第七群:10543585
    第八群:12006492
    第九群:19063074
    第十群:2883885
    第十一群:25460595
    第十二群:9663807

    深圳程序员QQ群联盟成立三年多,拥有三十个以上的QQ群,人数超二千多人,大量经验丰富的老手,成员从业于大公司(如微软、IBM,SUN,华为)、来自国内著名高校和研究院成员,和有丰富实践经验的高级程序员、系统分析员(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写操作系统),还有少数女程序员。推荐:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪6K以下的别加入) c++:15195967  mobile:31501597嵌入式:37489763 
    ——————————————————————————————————————————
    群内交流解决问题的方法,一般难以直接得到答案,问题的解决还是要靠自己。(授之以渔与授之以鱼的关系)。
    *****************************************************************************

    楼主为什么不嵌入汇编?
    使用汇编语言完成你的工作,应该是课后作业范畴吧

    需求不明,写的也是一塌糊涂
    if  (a->Strings[0]="–"){
        a->Strings[0]="";}
                      {
                  else
        a->Strings[0]="20";}

        a->Strings[1]="20 20";
        a->Strings[2]="12";
        a->Strings[3]="13";
        a->Strings[4]="10";
        a->Strings[5]="35";
        a->Strings[6]="27";
        a->Strings[7]="28"
        a->Strings[8]="29"
        a->Strings[9]="22";
    for(int i=0;i  <10;i++){
       
          b->Add(a->Strings[i]);
    }

    请高手指点!

    for(int i=0;i  <10;i++){
      if  (a->Strings[0]="–"){
        delete a->Strings[0];}
                      {
                  else
        a->Strings[0]="20";}

    请问,能不能就是把这行删除?delete 不会用,麻烦高手指教

    Digital-video and waveform-audio devices recognize this command. delete用的不对,
    for(int i=0;i <10;i++){
      if  (a->Strings[0]="–"){
        a->RemoveAt(a->Find(a->Strings[i]),a->Find(a->Strings[0]));}
                      {
                  else
        a->Strings[0]="20";} 

    楼上的高手,在编译的过程中提示如下:RemoveAt is not a member  Tstringlist
    如何消除这个错误???
    急!

    RemoveAt is not a member of  Tstringlist

    等待高手!!!!!!!!!!!

  • Filed under: C++ Builder
  • 对ComboBox里的信息转化成char,请大家帮下忙,
    要是我在ComboBox组件里设了3个值,1,2,3 ,并假设设了一个char 类型的buffer,如何将选中的值转化成char 型赋予buffer,
    如果可以给个例子,最好将如何选中ComboBox组件里的数据也写下,谢谢大家!

    用标准C的:strcpy(buffer,ComboBox1->Text.c_str());

    void __fastcall TForm1::ComboBox1Change(TObject *Sender)
    {
    char buffer = this->ComboBox1->Text[1];
    }

    顶一下。

  • Filed under: C++ Builder
  • VC的mfc开发的话,可以定义一个CString str;还有定义一个要显示的ID参数,
    然后通过以下语句str.Format("搜索到,ID号为%02d",ID);
    AfxMessageBox(str);
    我想问下如果是BC的话,模仿上面应该怎么做出提示窗口啊,谢谢!

    C/C++ code
    void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString str; int ID=100; str="搜索到,ID号为"+IntToStr(ID); ShowMessage(str); } //—————————————————————————

    还有请教一下,如何将Edit控件获得的信息转化成char类型

    我定义了一个char类型的数组,想将EDIT获得的信息赋予char类型的数组,请教下如何是好!

    C/C++ code
    void __fastcall TForm1::Button2Click(TObject *Sender) { char str[5]; strcpy(str,Edit1->Text.c_str()); } //—————————————————————————

    C/C++ code
    char str[100]; strcpy(str,Edit1->Text.c_str());

    Application->MessageBox(….);

    char *str = new char[Edit1->Text.Length()+1];
    strcpy(str,Edit1->Text.c_str());
    delete []str;

  • Filed under: C++ Builder
  • 类别

    最新

    标签

    链接


    存档