我爱builder

C++Builder 程序员博客

软件中大量使用了ShockWaveFlash ,当程序在BCB编程环境中编译状态时,不会出现任何问题.
当软件release后,偶而某个窗口会弹出Accress violation at XXXXXXXX(感觉象吃了苍蝇一样恶心),点确定后,发现Flash没有播放出来.关闭出错窗体,重新打开,Flash又能正常播放了,很邪门吧!
请高手指点,问题出在哪儿,该如何解决!

我觉得不一定是ShockWaveFlash 的事情,也可能是某处代码有泄露或者有冲突,造成的!比如对VCL控件的访问,最好不要放在子线程里,或者内存溢出(用CodeGuard查看一下),或者线程的互斥没有做好,都有可能!

  • Filed under: C++ Builder
  • 有一dat文件 格式如下

    C0808006,5
    C0808007-1,2
    C0808002,1
    C0808033,5
    C0807018,7
    C0807016,7
    C0806231,2
    C0807231,1
    C0808163-60,1
    C0808220-2,3

    逗号前是编号 逗号后是数量

    数据库表名为aaa里面有两字段mono和nop
    dat文件中的编号在mono中已经存在
    怎样做才能导入dat文件中的数量到nop,并且编号和mono对应.

    谢谢楼上

    假如说把这个文件读到memo1里

    怎样才能一条一条的加到数据库里

    memo有lines的属性啊!
    for(int i=0;i <Memo1->Lines->Count;i++ )
        ShowMessage(Memo1->Lines->Strings[i]);

    memo有lines的属性啊!
    for(int i=0;i <Memo1->Lines->Count;i++ )
        ShowMessage(Memo1->Lines->Strings[i]);

    写入数据库中后,你可以用mono字段加逗号来查询,

    SELECT * FROM 表名 where 字段名 like 'C0808007-1,%'
    查出来之号用substring就可以了。

    能不能留个QQ或加我,就差最后一步了,麻烦你帮忙看下. 谢谢

    我的QQ:一一一一五五五

    手动导进去不就行了。。。

    ado也可以连接文本文件的. 就像连ACCESS一样.
    不考虑效率的话, 用个ADO循环一下就行了.

    自己折腾好了 谢谢各位帮忙

  • Filed under: C++ Builder
  • 我想做一个资料管理系统,用Access和c++builder,但是不会用c++builder连接Access里的数据库,请各位朋友帮帮忙并提供一段示例代码,谢谢!

    C++Builder操作Access数据库,用ADO组件方便快捷。

    这么多星星!

    创建ADO的连接,首先要设置ADO连接对象的ConnectionString属性,该属性提供所要连接的数据库类型、数据所处服务器、要访问的数据库和数据库访问的安全认证信息。
    比较专业的方法是在ConnectionString中直接提供以上信息,
    下面是访问ACCESS数据源设置ConnectionString的字符串:

    访问ACCESS   数据库  
    "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=databaseName;User   ID=userName;Password=userPassword; "  

    访问有密码的access数据库
    "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=netcontrol.mdb;Persist   Security   Info=False;Jet   OLEDB:Database   Password=access_2004 "

    http://www.go4pro.org/cate_list.asp?cate=1

    up

    都说完了

    先在系统中配置好连接数据库的ODBC,再用ADO组件,很方便的

    在ADO中加ADOConnection1   双击-> build…-> Microsoft   Jet   4.0   OLE   DB   Provider
    -> 下一步-> 选择你要连接的数据库

    很简单的,用ADO/BDE连都行,不过要先配ODBC

    再问达人,我用ADO连接网络数据库,如何设置登陆计算机的用户名和密码

    使用BDE时,需要配置ODBC,这样不方便,而用ADO时,则不需要。

    我也想知道哦

    ADO不需要用ODBC.

    控制面板->管理工具->数据源->添加->选择Driber do microsoft access(*.mdb)->完成->填上数据名
    然后在点击数据库下的"选择"然后输入你的access的路径名
    设置好了后可以在odbc数据源管理器看到你的数据名称
    再就是要在你的c++buider中把你的Table/Query中的属性databasename="数据名"tablename=access名
    query只有databaseneme;

    该回复于2008-07-19 16:11:06被版主删除

    该回复于2008-06-08 11:33:01被版主删除

    使用ADO连接比较方便
    用ADOConnection
    数据连接方式是:什么JET 4.0的.
    然后连接文件选ACCESS数据库就可以了.

    ADO,楼上大哥们都已经说得很明白了

    1、加组件ADOTable,根据提示设置属性ConnectString,测试连接成功后,点OK,然后在Table属性中选自己所要连接的表
    2、加组件DataSource并将DataSource属性设置为ADOTable
    3、常用操作
      a)插入ADOTable->Insert();
      b)编辑ADOTable->Edit();
      c)删除ADOTable->Delete();
    需更多帮助请加我QQ:296318756
    邮箱:zhuyongkang2006@126.com

    用ADO组件方便快捷。

    C++Builder操作Access数据库,用ADO组件方便快捷。

  • Filed under: C++ Builder
  • access日期型字段其实是Double,现在的问题是:access日期型字段My_Date为主键,SQL里的“where CDbl(My_Date)=12345.1234567890”索引起作用吗?如不起作用,应怎样改?这样做是因为在C++Builder里用ADOConnection->Execute,SQL语句原为“where My_Date=#时间字符串#”,"#时间字符串#"必须要是精确到毫秒以下,字符串难以表达,我试过用“where My_Date=12345.123456789012”,在access里可定位记录,但在CB里不能定位,另试“where My_Date between 12345.123456789 and 12345.123456790”在CB也不能定位,只有“where CDbl(My_Date)=12345.1234567890”在CB里能定位。

  • Filed under: C++ Builder
  • 谁给我一段 自动创建ACCESS数据库的代码?  论坛上找了好多了,但就是不行 
    同盟用到哪些控件请说明一下

    不行啊    有没有人给我详细讲一下啊

    怎么不行?

    可以的,呵呵,代码主要是loveshell完成的,它是原作者!

    loveshell的那段代码我测试过的,后面的代码有些改动,你把整个帖子看完,包括后面的回复帖子!

    bool TDM::CreateTempDataBase()
    {//创建一个临时数据库
            Variant  CreateAccess ;
            String dataname="Data\\temp.mdb"
            if(FileExists(dataname))
                    DeleteFile(dataname);
            String dir="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
            String connstring=dir+dataname;
            //通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
            CreateAccess=CreateOleObject("ADOX.Catalog");
            try{
                    CreateAccess.OleFunction("Create",connstring.c_str());//创建数据库
                    TADOCommand *comm=new TADOCommand(this);
                    comm->ConnectionString=connstring; //创建数据表
                    comm->CommandText="create table 上报汇总(段别 varchar(3),类型 varchar(10),名称 varchar(25),编号 varchar(15),生产厂家 varchar(20),生产日期 varchar(10),机车号 varchar(15),检修日期 datetime)";
                    comm->Execute();
                    delete comm;

                    return true;
            }
            catch(…){
                    return false;
            }
    }
    //—————————————————————————

    呵呵,最简单的做个模板文件放在那里,用时复制一份。好多程序就是这样做的。

    请问LOVESHELL  conn=conn+DbName;  DBNAME是什么啊,没有定义过啊

    还有那个DataModule1在哪里啊

    那是我自己的代码,你得稍微改一下。DBNAME是你要生成的数据库的路径,DataModule1是放ADOCommand1的地方,代码用到了TADOConnection和TADOCommand两个控件。

    我吧数据库放到资源文件中了,用的时候在拿出来用。。。

    DataModule1是To create a new, empty data module, choose File &brvbarNew &brvbarData Module (or File &brvbarNew &brvbarOther and click the Data Module icon) 这样生成的对吧?  然后再加入到原工程中,  但是编译时还是说DataModule1没有定义过    晕死了 

    注意包含Datamoudle1所在单元的头文件!

    还不行,提示说 "ADOCommand1" is not a member of "TDataModule1"  又是为什么呢?    有点自卑了

    顶!!!!!

    你的ADOCommand1没有放在DataModule1里面.注意,凡是要用到ADO的地方,必须都包含头文件:DataModule1.h

  • Filed under: C++ Builder
  • 那里有相似程序的源码下啊?

    恩,你可以用InterBase,paradox

    单机版的财务软件大多用的桌面数据库
    比如用友的财务通 就用的MSDE

    sqlite

    推荐用sqlite ,功能强大,速度快!!

    用文本或者其他方式
    模拟数据库方式管理数据就OK啦
    当然,如果数据库超过限度,会很惨哦

  • Filed under: C++ Builder
  • 一个从MDB里读取数据后,另一个怎么构造插入的sql语句?我的ACCESS表里日期字段是文本型,sqlserver里日期字段是date类型,能用
    SELECT   *
    INTO   newtable
    FROM   OPENDATASOURCE   ( 'Microsoft.Jet.OLEDB.4.0 ',  
    'Data   Source= "c:\DB.mdb ";User   ID=Admin;Password= '   )…表名
    方法吗?试过几次老是出错

    .......我需要这样做.

    上面问题已解决,再问一下socketconnection有没有类似BeginTrans()的方法?怎么实现回滚呢?

    up

  • Filed under: C++ Builder
  • 想用ADOQuery1检查ACCESS表的存在,然后drop。使用"SELECT count(*) FROM MSysObjects WHERE name = 'MyTab'",该语句在ACCESS2007内可执行,但在CB2007内出错:“不能读取记录,在MSysObjects上没有读取数据的权限。”,现问:
    1、我的ADOConnection1->ConnectionString为"Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123;Data Source=d:\MyDBF.mdb",应怎样改?
    2、有别的办法用SQL来先检查表的存在,后DROP吗?

  • Filed under: C++ Builder
  • 想要更改Access数据库的密码,使用Alter database password …提示不能改变一个打开的共享数据库的密码

    http://topic.csdn.net/u/20080629/22/0fc34ba0-7818-403a-9a6e-c49e85abe01c.html

  • Filed under: C++ Builder
  • ADOQUERY ACCESS 怎么才能得到数据库里的所有表的名字?我想放到LISTBOX里面。请高手赐代码?说的详细些啊。我是初学者。

    ADOQUERY 貌似没法实现,顶老蔡!

    先顶下菜锅

    C/C++ code
    TADODataSet *pDataSet=new TADODataSet(0); //OpenSchema参数比较多,这里我们只要获取他的表,你还可以获取很多东东 ADOConnection1->OpenSchema(siTables,Variant::NoParam(),Variant::NoParam(),pDataSet); try { //将结果加入ListBox中 pDataSet->First(); while(!pDataSet->Eof) { //只获取用户创建的表 if(pDataSet->FieldByName("TABLE_TYPE")->AsString.UpperCase()=="TABLE") ListBox1->Items->Add(pDataSet->FieldByName("TABLE_NAME")->AsString); pDataSet->Next(); //指针移动到下一条记录 } } catch(…) { MessageBox(0,"bcb群-[4670-3864]","发生不可预知的错误!",MB_OK); }

    建议用老蔡的方法!,若要获取数据库更多的信息(比如每个表的所有字段等),可以用这个方法

    结账先..谢谢楼上的几位啦.

  • Filed under: C++ Builder
  • 类别

    最新

    标签

    链接


    存档