我使用Delphi 7和DBExpress.我想将我的应用程序完全迁移到firebird 2.1.我已经知道在服务器端做什么但在客户端不太确定.
在TSQLConnection组件中,我看到vendorLib属性指向GDS32.dll.driverName是Interbase,getDriverFunc是getSQLDriverINTERBASE.
我不知道为了我的连接使用fbclient.dll该怎么办.我尝试在vendorLib中将gds32.dll更改为fbclient.dll,但它在我的应用程序中导致了一些访问冲突.
有小费吗?
如果我应该使用TXMLTransformProvider或TXMLDocument,我有疑问.
TXMLTransformProvider看起来更易于维护,在我看来,使用它将需要比TXMLDocument更少的编码.
另一方面TXMLDocument看起来更灵活.
我需要的是生成和解析具有嵌套属性的XML文档,将其映射到master-detail clientDataSets并写回一个XML文档.
你有这方面的提示吗?
谢谢.
我正在编写两个必须通信的litle c ++应用程序.第一个将是一项服务,每隔一段时间,必须提醒用户一些事情.由于服务无法创建窗口,我将应用程序设计为两个独立的可执行文件.
该服务将使用通知程序进行通信.
该服务仅需要向通知器发送文本消息,该通知器将在系统托盘上显示气球.
我试图使用命名管道,我想我几乎在那里,但不是那里.到目前为止我所拥有的是:
在通知者方面:
m_hInPipe = CreateNamedPipe(L"\\\\.\\pipe\\nhsupspipe", PIPE_ACCESS_INBOUND,
PIPE_WAIT, 1, 1024, 1024, 60, NULL);
Run Code Online (Sandbox Code Playgroud)
意思是我创建了一个名为nhsupspipe的管道,一个入站管道.
在服务方面:
if (!WriteFile(m_hOutPipe, "My message to the user?", 23, &escritos, &o))
std::cout << "ERROR: " << GetLastError();
Run Code Online (Sandbox Code Playgroud)
调试我可以看到一切正常,管道已创建,WriteFile将我的23个字节写入管道.
我的问题是:如何在通知器方面能够读取这些字节?是否有任何消息发送到该流程?我是否必须为管道编写处理程序?什么?
我在D7应用程序中使用TwebBrowser.问题是:当我升级我的IE时,这个组件会使用新的IE渲染页面吗?
我需要我的软件来对火鸟数据库进行热备份.使用gbak是这样做的官方方式.但是使用外部工具会迫使我解决确保工具在系统路径中的麻烦,或者我有gbak.exe的实际位置.如果可能的话我想避免这种情况.
那么,有没有做任何事情的选择
BACKUP DATABASE TO location_of_backup;
Run Code Online (Sandbox Code Playgroud)
我使用的是Delphi XE4,Firebird 2.1和DBExpress,而不是在这里安装第三方的选项.
我有一个打印标签的软件.它生成许多页面,其中n列要在标签打印机(通常是Argox或Zebra)中打印.我使用报表生成器这样做,这意味着我通过Windows驱动程序发送作业,而不是直接发送到打印机.
我有这个客户很难打印她的标签.打印机在一页和另一页之间暂停15-20秒.
我已经审查了我能够找到的所有配置,但没有找到任何配置.
为了使我的问题变得更糟,我的客户使用了Bartender软件(与Argox一起提供),并且在那里打印时没有这种延迟.调酒师也使用Windows驱动程序.
好吧,从我的客户的角度来看,问题在于我的软件,我不怪她.
从我的角度来看,一旦我使用驱动程序,我就无法控制这样的事情(在页面之间暂停).
我错了吗?有什么办法可以避免这种延误吗?
重要信息
我正在编写一个报告gem,它将有一些助手从ActiveRecord中提取数据.
它将实现的一个函数是to_report_yaml,我需要从单个记录(ActiveRecord :: Base实例)或记录数组中调用它.在两种情况下,to_report_yaml的实现非常相似,所以我想要的是实现它一次并使用duck typing在我的逻辑中做出一些决定.
我的问题是.扩展ActiveRecord :: Base和Array的最佳方法是什么,因此两者都有一个名为to_report_yaml的函数指向同一个实现?
我的软件使用DLL,它由INI文件配置.它获得了第一个具有特定名称(如果重要的话,Bemafi32.ini),它可以在系统路径中找到.
我想在我的软件中添加编辑此文件的功能.如果我的系统有2个或更多具有相同名称的文件(非常非常普通),我不想错误.我如何保证获得正确的文件?
我想搜索一个字符串,并替换为第一个字符串中包含的第二个字符串.例如,我有以下几行
key1: foo
key2: bar
Run Code Online (Sandbox Code Playgroud)
我的正则表达方式是我想要的方式:
^\s\+\w:.\+
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式替换整行:
foo -> key1
bar -> key2
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
如果我以通常的方式指向gem,将它安装在我的环境中
gem 'activerecord_datawarehouse'
Run Code Online (Sandbox Code Playgroud)
rake -T不显示我的rake任务,但如果我直接指向gem源代码,就像
gem 'activerecord_datawarehouse', :path => "/home/acras/code/activerecord_datawarehouse"
Run Code Online (Sandbox Code Playgroud)
它显示和rake任务完美地工作.
我在这里可以缺少什么?我做了双重检查,安装的gem与我在源代码中的相同.
我有一个我无法确认的备份文件,但我99%肯定它是使用2.1版创建的.现在我尝试使用此命令使用版本2.1.4.18393恢复它:
c:\users\me\documents> "c:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -C tmp.gbk "localhost:c:\users\me\documents\sgl.fdb" -v -user sysdba -password masterkey
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
gbak: ERROR:Expected backup version 1..8. Found 9
Run Code Online (Sandbox Code Playgroud)
我尝试使用firebird 2.5进行恢复但是得到了
gbak: ERROR:Malformed string
gbak:Invalid metadata detected. Use -FIX_FSS_METADATA option.
Run Code Online (Sandbox Code Playgroud)
我该如何恢复此文件?