如何解决在Delphi7 TListView中显示一个SynopseSQLite3表列
| 我想采用以下单位(DrivesData),并在TListView中显示驱动器列。我以前从未使用过(Synopse)SQLite3代码,因此我希望有人可以向我提供一些正确方向的推动。 只需将DrivesData单元添加到uses子句中,然后运行,它将创建\“ drives.sqlite \”数据库文件,其中包含驱动器\'A \'到\'Z \'的列表。unit DrivesData;
interface
uses
SynCommons,SQLite3Commons;
type
TDrives = class(TSQLRecord)
private
{ Private declarations }
FDrive: RawUTF8;
protected
{ Protected declarations }
FDrivesModel: TSQLModel;
FDrivesDatabase: TSQLRest;
public
{ Public declarations }
constructor Create(); override;
destructor Destroy(); override;
published
{ Published declarations }
property Drive: RawUTF8 read FDrive write FDrive;
end;
var
DriveRecord: TDrives;
implementation
uses
SQLite3;
function CreateDrivesModel(): TSQLModel;
begin
Result := TSQLModel.Create([TDrives]);
end;
{ TDrives }
constructor TDrives.Create();
var
X: Char;
begin
inherited Create();
FDrivesModel := CreateDrivesModel();
FDrivesDatabase := TSQLRestServerDB.Create(FDrivesModel,\'drives.sqlite\');
TSQLRestServerDB(FDrivesDatabase).DB.Execute(
\'CREATE TABLE IF NOT EXISTS drives \' +
\'(id INTEGER PRIMARY KEY,drive TEXT NOT NULL UNIQUE COLLATE NOCASE);\');
for X := \'A\' to \'Z\' do
begin
TSQLRestServerDB(FDrivesDatabase).DB.Execute(
\'INSERT OR IGNORE INTO drives (drive) VALUES (\"\' + X + \':\")\');
end;
end;
destructor TDrives.Destroy();
begin
if Assigned(FDrivesDatabase) then
FDrivesDatabase.Free();
if Assigned(FDrivesModel) then
FDrivesModel.Free();
inherited Destroy();
end;
initialization
DriveRecord := TDrives.Create();
finalization
if Assigned(DriveRecord) then
DriveRecord.Free();
end.
解决方法
不错的尝试!
但是恐怕您会缺少该框架的某些要点:
例如,您在混合记录级别和MVC应用程序级别:
TSQLRecord
映射数据库表,并且您不应在此类中声明MVCTSQLModel
和TSQLRest
;
并且您错过了ORM方法,则不需要编写所有这些SQL代码(CREATE TABLE和INSERT):框架将为您编写它,而不会出现错误,并且提供了确切的预期列类型(排序规则)!
最好不要使用TSQLRestClientDB
(它将实例化其私有TSQLRestServerDB
),而不是直接单独使用TSQLRestServerDB
,即使您仍在本地工作。因此,您将获得更多功能而不会降低性能。
您在代码中使用Char
类型。我们的框架面向UTF-8,因此您应改用AnsiChar,或使用or8ѭ函数来确保正确性(至少在Unicode版本的Delphi中)。
我建议您看一下示例代码的源代码和提供的文档(特别是SAD文档,在第一页的概述中,包括SynFile主演示)。
要检索一些数据,然后将其显示在VCL中(例如,在ѭ9中),请看一下TSQLTableJSON
类。 SAD文档中有一些代码示例(如果您有点迷茫,请查看文档开头的关键字索引)。
也许StackOverflow不是询问此类特定问题的最佳场所。您可以在http://synopse.info上找到我们的论坛,以发布有关此框架的任何问题。您可以在此处发布您的代码。
感谢您的关注!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。