cds.data:=dsp.data赋值有时会出现AV错误剖析

如果QUERY没有查询到任何数据,cds.data:=dsp.data赋值会触发AV错误。

大家知道,DATASNAP有许多远程方法就是返回OLEVARIANT类型的数据,当远程方法没有返回任何数据的时候,cds.data:=远程方法函数赋值的时候,同样会触发AV错误。

那么怎样解决此类问题呢?

1)中间件远程方法作如下处理

function TServerMethods1.QuerySql(const accountNo, sql: WideString): OleVariant;
var
d: TfrmDB;
begin
Result := null;  // 默认返回NULL
if (accountNo = '') or (sql = '') then
Exit;

2)客户端调用远程方法作如下处理

function TdmSys.QuerySQL(const sql: string; cds: TClientDataSet; accountno: string = '0'): Boolean;
var
v: OleVariant;
m: TServerMethods1Client;
begin
Result := False;
try
waitInfo.Show;
waitInfo.Update;

if appInfo.tier = 3 then
begin
if ConnectAppServer and (sql <> '') and (cds <> nil) then
begin
m := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
v := m.QuerySQL(accountno, sql);
m.Free;
if not VarIsNull(v) then  // VarIsNull(v) 判断远程方法是否有返回数据
begin
cds.Data := v;
Result := True;
end;
end;

cds.data:=dsp.data赋值有时会出现AV错误剖析相关推荐

  1. ABAP CDS(Core Data Service)的创建和使用

    1. 新建CDS EClipse创建一个ABAP CDS PROJECT 选择Data Definition 设置属性 2. 实现CDS 实现代码 3. CDS的使用 在ABAP中调用CDS查询 SE ...

  2. CDS (W2) -- Features, Data, Text Processing

    Features, Data, Text Processing 1. Features Examples of Features e.g. Home Type, Material Status, In ...

  3. Data truncation: Data too long for column 'xxx' at row 1

    Data truncation: Data too long for column 'xxx' at row 1 完整的错误内容可能是下面这样的: 严重: Servlet.service() for ...

  4. Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com

    Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com There's ...

  5. ML:MLOps系列讲解之《基于ML的软件的三个层次之01 Data: Data Engineering Pipelines》解读

    ML:MLOps系列讲解之<基于ML的软件的三个层次之01 Data: Data Engineering Pipelines>解读 目录 <基于ML的软件的三个层次>解读 1. ...

  6. spring boot中data truncation data too long for column问题

    为什么80%的码农都做不了架构师?>>>    问题 根据报错可知,就是之前在数据库中定义的字段太短了,存不下新的数据 解决 @Column(length = 3000)privat ...

  7. Data truncation: Data truncated for column/Data too long for column

    数据截断:数据太长针对某列! Data truncation: Data too long for column 'dcontent' at row 1.我检查了以下.发现我插入到文本框里的表格的长度 ...

  8. 静态时序分析——Data to data check

    setup和hold的检查也有可能发生在任意两个数据端口,其中不包括时钟端口. 我们将其中一个端口(pin)设置为约束端口(constrainted pin),就像触发器中的数据端口:将另一个一个端口 ...

  9. 解决:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘ip‘ at row 1

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 报错: SQL []; Data truncation: Data too long for ...

最新文章

  1. 数据结构Java实现03----单向链表的插入和删除b
  2. 无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件...
  3. UVa 1025 A Spy in the Metro
  4. ubuntu16.04安装MATLAB R2017b步骤详解(附完整破解文件包)
  5. 找出性能消耗是第一步,如何解决问题才是关键
  6. Eclipse安装试用Hanlp
  7. 【HDU】1695 GCD
  8. 【招聘内推】百度地图招聘推荐推送算法工程师
  9. 【Xilinx-Petalinux学习】-02-建立PetaLinux工程
  10. Python:代码规范和命名规范
  11. 实对称矩阵的特征值求法_机器学习和线性代数 - 特征值和特征向量
  12. Prewitt算子边缘检测原理及实现
  13. JAVA代码托管平台_推荐几个常用的代码托管平台
  14. Java网络编程——基本网络支持
  15. 低延迟平价游戏蓝牙耳机推荐,2021值得入手的五款品牌蓝牙耳机
  16. FCOS:Fully Convolutional One-Stage Object Detection 论文翻译(非解读)
  17. 【JDBC】JDBC 简介 ( JDBC 概念 | JDBC 本质 | 使用 JDBC 操作数据库的好处 | JDBC 提供的 API 组件 )
  18. xcodebuild命令
  19. USB-IF介绍及标准下载
  20. C++ 引用Lib和Dll的方法总结

热门文章

  1. Linux启动界面切换:图形界面-字符界面(转)
  2. Java项目:基于SSM实现房屋租赁系统
  3. 自定义InputFormat案例
  4. python实现一个抽象数据结构:栈
  5. 修改Intellij IDEA中工程对应的Java SDK、Scala SDK
  6. MySQL的视图、事务和索引
  7. 一句话懂什么是JS闭包
  8. Python基础——for/while循环
  9. scanf printf sprintf fprintf
  10. C# ListT用法