动态将ADOQuery数据移植到ClientDataSet通用函数
动态将ADOQuery数据移植到ClientDataSet通用函数
昨天做程序突然想到的,如果您会使用内存表就不需要此例了,可以参考一下,代码如下:
//******************************************************************************
// 函数功能: 执行SQL查询语句,影响ClientDataSet控件
// 函数名称: cf_dbSelectSQL
// 函数参数: var oClientDataSet:TClientDataSet; 对象(ClientdataSet)
// sSQL String SQL结构化语言
// sCon String 数据连接字符串
// 返回值: 返回是否操作成功(Boolean);
//******************************************************************************
function cf_dbSelectSQL(var oClientDataSet:TClientDataSet;sCon,sSQL: string): Boolean;overload;
var
oADOQuery:TADOQuery;
iField:Integer;
begin
Result:=False;
if (oClientDataSet=nil) then Exit;
if (Trim(sCon)='') or (Trim(sSql)='') then Exit;
try
oADOQuery:=TADOQuery.Create(nil);
oClientDataSet.Fields.Clear;
oADOQuery.SQL.Clear;
oADOQuery.SQL.Add(sSQL);
oADOQuery.ConnectionString:=sCon;
oADOQuery.Open;
if oADOQuery.Fields.Count>0 then
begin
for iField:=0 to oADOQuery.Fields.Count-1 do
begin
with oClientDataSet.FieldDefs.AddFieldDef do
begin
Name:=oADOQuery.Fields[iField].DisplayName;
DataType:=oADOQuery.Fields[iField].DataType;
end;
end;
//建立结构。
oClientDataSet.CreateDataSet;
oClientDataSet.Open;
if not oADOQuery.IsEmpty then
begin
//循环加入列表中
oADOQuery.First;
while not oADOQuery.Eof do
begin
oClientDataSet.Append;
for iField:=0 to oADOQuery.Fields.Count-1 do
begin
oClientDataSet.FieldByName(oADOQuery.Fields[iField].DisplayName).AsString:=oADOQuery.FieldByName(oADOQuery.Fields[iField].DisplayName).AsString;
end;
oClientDataSet.Post;
oADOQuery.Next;
end;
end;
end;
oClientDataSet.Open;
Result:=True;
except
Result:=False;
end;
end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人