`
izuoyan
  • 浏览: 9221992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在TCX中使用SQLite3

 
阅读更多

我早就鼓吹过:SQLite是最好的本地文件型数据库。

在Windows下,它只要一个几百K的DLL就可以驱动,管理工具也只是一 个几百K的EXE程序就行了。相比之下,ACCESS庞大得令人生厌,即使是一个OLE-DB驱动也有至少10M以上的size,更不用说Foxpro, Paradox……那一大堆的表文件了。当然,SQLite的性能还不能跟那个BT的BerkeleyDB相比——BDB根本不能算是一个完整的数据库,连 SQL都不支持。

不过因为VCL提供的BDE、ADO、DBX等开发手段都没有提供对SQLite的支持——PostgreSQL至少还可 以通过OLD-DB驱动用ADO方式连接。所以用Delphi或BCB访问SQLite还是比较麻烦的。我之前都只是在Python应用中使用 SQLite。

幸好开源社区很快为此提供了支持,那就是优秀的开源数据库控件包:ZEOSDBO。它基于VCL标准的数据库接口实现,可以像BDE、ADO、DBX那样使用这一组控件,它支持的数据库和开发工具有:

支持的数据库:Sybase/ASA、Oracle、MS SQL、MySQL、InterBase/Firebird、PostgreSQL、SQLite/3等。
支持的VCL开发工具:Delphi 5-10,BCB 5/6,Kylix 2/3,Lazarus等。

然 而因为版权的原因,我现在只使用CodeGear的免费开发工具:Turbo C++ Explorer(TCX)。由于免费版的License限制,不能在TCX中安装任何第三方控件,所以我无法直接使用ZEOSDBO。不过我既然已经大 言不惭地号称DELPHI专家多年,要是连这也搞不定,那也太没面子了吧。挖卡卡。

经过一番试验,这个问题最终还是得以解决。其实也没有什么技术含量,无非是麻烦一点罢了:

启动TCX,创建一个VCL应用,在Project里加入以下文件夹中的所有PAS文件:

ZEOSDBO/src/core
ZEOSDBO/src/dbc
ZEOSDBO/src/parsesql
ZEOSDBO/src/plain

然后在Project里加入 ZEOSDBO/src/component 文件夹中的必要文 件——用到哪几个控件就加哪几个控件的文件,比如常用的ZConnection.pas和ZDataset.pas,其它不必要的文件不用加入。特别是文 件名中包含"Editor"的属性编辑功能单元,因为它们用到了控件Design的一些东西,而这些在免费版的TCX中是没有的,加入这些单元将导致编译 失败。

加好文件以后暂时不要在程序中引用,而是先编译一下,生成必要的相关文件——如.hpp等。正常情况下除了会出现几个HINT或WARNING以外,都能成功编译。

之后就可以在程序中引用ZEOSDBO访问SQLite了。

Unit1.h内容大致如下(其中偷懒用了STL中的auto_ptr管理ZEOSDBO控件对象的生命周期):

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ZConnection.hpp>
#include <ZDataset.hpp>

#include <memory>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
std::auto_ptr<TZConnection> zConn;
std::auto_ptr<TZTable> tblPerson;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

在Unit1.cpp中就可以如下代码所示访问SQLite了:

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner),
zConn( new TZConnection(this) ),
tblPerson( new TZTable( this) )
{
zConn->Protocol = "sqlite-3";
zConn->HostName = "localhost";
zConn->Database = ChangeFileExt( Application->ExeName, ".sqlite3" );
zConn->User = "";
zConn->Password = "";
zConn->Connect();
tblPerson->Connection = zConn.get();
tblPerson->TableName = "person";
tblPerson->Open( );
//...
}

最后再废话一句:SQLite可是开源免费跨平台的哦。

分享到:
评论

相关推荐

    photoshop用pantone TCX调色板

    用于ps上的panrone TCX 调色板 PANRONE

    TPX TCX colorlist.rar

    “TCX”则代表Textile Color Card eXtended,这是Pantone的另一种纺织品色彩标准,但具体含义在这个上下文中并未明确提及。通常情况下,TCX可能指的是用于棉或其他非涂层材料的颜色系统,不过在这里,我们主要讨论的...

    tcx-edit:用于编辑 TCX 文件的 Python 脚本

    生成的文件将在同一路径中保存为&lt;tcx&gt;-edit.tcx 。 行动 split_at 在参数位置拆分 tcx 文件。 它的格式应该是HH:MM:SS (从文件的开头)。 例子: python tcx-edit.py tcx_file split_at 00:15:10 01:15:00 它将...

    Python库 | tcx2rk-0.1.1.tar.gz

    3. 使用库:在Python脚本中导入tcx2rk模块,然后调用提供的函数进行TCX文件的读取和转换操作。 开发者在使用tcx2rk库时,需要注意处理可能出现的问题,例如TCX文件的兼容性、Runkeeper API的权限设置、网络连接问题...

    tcx-to-json:将 Garmin .TCX 格式转换为 JSON

    相反,它使用正则表达式逐行解析文件中的元素。 因此,为了正确解析文件或流,应该对流进行格式化,以便每一行都有一个 XML 节点,因为 TCX 文件在从 Garmin Connect 导出时被格式化。 如有任何问题,请查阅 sample...

    tcx-to-csv:将TCX文件转换为CSV

    这种转换过程对于那些希望在不支持TCX格式的软件或平台中分析、整理或共享其运动数据的人非常有用。下面我们将深入探讨TCX文件格式、CSV文件格式以及如何进行转换。 **TCX文件格式** TCX是Garmin公司开发的一种XML...

    tcx-parser:Garmin tcx 文件的简单解析器。 将它们转换为 Javascript 对象。 仅支持来自 Garmin Forerunners 和 Edge 计算机的少数字段

    "tcx-parser"是一个专门针对TCX文件的解析库,它的主要功能是将这些XML文件转换为Javascript对象,以便于开发者在Web应用中进行处理和分析。 这个开源项目主要服务于那些需要在JavaScript环境中处理Garmin设备生成...

    Fit2Tcx:将 Garmin 适配文件转换为 tcx

    不使用来自的官方 ANT 库,因为该许可证与开源项目不兼容。 由于目标格式tcx只能处理所有可用拟合消息的一小部分,因此仅实现所有拟合消息的一部分。 许可证:GPL3(或更高版本)主页: ://...

    FIT-to-TCX:将灵活且可互操作的数据传输(FIT)文件转换为Training Center XML(TCX)文件

    该软件包应该在您的打包系统中可用,因此根据您的操作系统,您应该能够使用apt-get install python-lxml , yum install python-lxml或类似的东西。 该库被标记为依赖项,因此,如果没有该库,请按照下面的安装说明...

    running-analysis:导入TCX文件并使用chart.js绘制各种指标的项目

    如果您拥有GARMIN Connect帐户,则在选择活动时可以使用“ export to TCX功能。 (在将来的版本中,我想添加一个功能以从STRAVA下载)。 导入文件时,可以选择每个图表上显示的指标,并使用滑块来限制数据间隔范围...

    MotoACTV-tcx:将MotoACTV CSV锻炼数据转换为TCX格式

    如果心率信息包含在CSV文件中,但不会读取功率数据。 高程数据可能无法正确处理,但是大多数健身场所都会根据位置数据重新计算高程。用法 ./motoactv_tcx.py &lt;CSV&gt; | tidy -q -i -xml &gt; output.tcx要求

    runner:一组用于处理 .FIT、.TCX 和 .GPX 文件的工具

    runner-edit time -i activity.tcx -o activity_edited.tcx --time='+2hour'跑步者合并将文件中的心率数据合并到另一项活动中。 丢失的心率数据是使用插值的。 runner-merge -m main_activity.tcx -c cardio_...

    TCX Message Box (derived from CWnd)(35KB)

    TCX Message Box是一款基于MFC(C++ Windows编程框架)中的CWnd类派生出来的自定义消息框控件。它的设计目的是提供一种更加灵活且可定制化的对话框界面,以替代系统默认的消息提示框。在MFC中,CWnd是所有窗口对象的...

    gpxtcx:将 Garmin 心率监测器的 TCX 数据与 GPS 记录器生成的 GPX 文件合并的实用程序

    Gpx/Tcx 合并 ...有一个非常相似的项目,名为 ,它通过将 GPX 文件中的航点信息合并到 TCX 文件中来做类似的事情。 安装 要运行该程序,您的计算机上至少需要安装 Java Runtime Environment &gt;= 6。 安

    StravaImporter:将tcx文件(由Endomondo导出)导入Strava的脚本

    现在,您应该在数据目录中有一个目录“ Workouts”,其中包含tcx文件(以及包含一些其他数据的json文件,因此请将其保留在此处)。 安装节点等和程序包依赖项 在节点版本(14.15.1)上进行了测试 建议通过nvm安装...

    ifitTcxPowerFromCsv:从csv文件导出向tcx文件添加瓦特功率读数

    iFit出于某种原因拒绝将Watts包含在锻炼导出tcx文件中,原因是Wats包含在csv中,但不能用于Strava或其他健身场所 这个脚本: 1. creates a dictionary of time(offset from start) : Watts for lookup 2. Converts...

    TCX-Parser:TCX(Garmin培训中心)文件解析器

    TCX解析器 安装 玛文 &lt; groupId&gt;pl.jakubtrzcinski &lt; artifactId&gt;tcx-parser &lt; version&gt;1.0.2.RELEASE Gradle dependencies { implementation ' pl.jakubtrzcinski:tcx-parser:1.0.2.RELEASE ' } 用法 var...

    python-tcxparser:Garmin TCX文件的简单解析器

    python-tcxparser 建置...平均和最大节奏(骑自行车活动) 在心率区花费的百分比和时间安装从PyPI安装它: pip install python-tcxparser用法基本用法示例: &gt;&gt;&gt; import tcxparser&gt;&gt;&gt; tcx = tcxparser.TCXParser('/home

    tcx2nikeplus:Garmin Forerunner TCX转换为Nike + Converter&Uploader

    专家3 目录设置 您可能需要以下属性文件,具体取决于您要执行的操作: 下载garmin活动。 $ cat etc/garmin.properties # Credentials for garmin connect login. GARMIN_USERNAME = GARMIN_PASSWORD = 上载到...

    潘通色卡电子版

    TCX色卡提供了颜色代码和配方,便于在生产过程中实现精确的色彩匹配。 - TPX色彩系统:TPX代表了潘通Plus系列,这是潘通不断更新和扩展的颜色库,旨在满足现代设计需求。它包括了更丰富的色彩选择,适用于各种印刷...

Global site tag (gtag.js) - Google Analytics