当前位置: 首页 > news >正文

使用FDBatchMove的几个问题总结

FDBatchMove的使用,搞了好久,今天终于解决了自己的几个问题,网上很少例子,记录一下,仅做参考。

1、使用firedac导入excel表,需要access database驱动,不要使用2007,一定要使用2010,否则你将有很多麻烦不能解决。会提示数据类型不匹配。

2、FDBatchMove的read和write语句,text,dataset,sql三个语句可以混用,不一定必须成双成对。

3、使用FDBatchMoveSQL的Reader和writer语句时,read的语句中的字段如果和write的字段不一致,必须as成一致的字段,write语句中的字段必须和数据表的字段一致,即使使用:变量时,这个变量也必须一致,否则提示主键未定义。

4、读写语句中,你可以任意使用sql的标准函数,但须遵守上述的条件。

5、字段中如果需要日期的读入,最好使用Format+FormatDateTime读入,否则会提示数据类型不匹配。

6、有时候提示string数据类型不能转换为cerrency类型,这是Excel表中的数据类型异常导致的,把需要的列用分列做一次常规赋值(用单元格格式不起作用),什么也不要动作,直接下一步完成即可,保存后就正常了。

其他的你可以随意发挥。

举个特别的例子,excel->sql,姓名是sql表的主键,excel表中没有姓名字段,只有编号,但sql的表中有对应关系:

ReadSQL=select 分值 as 业务量,编号 as 姓名 from [A表$] 
WriteSQL=update 计算表 set 业务量=:业务量 where 姓名=(select 姓名 from 计算表 where 编号=:姓名)

不用质疑,就是这么奇葩的写法,如果不这样转换,就会提示主键没有定义的错误。

20250106补充:有时候提示数据类型不匹配,也可能是excel表的格式问题,解决方法:哪一列的数读不出,就选定那一列,然后点击分列,直接点击完成即可。

20250107补充:如果在导入excel表之前需要处理一下表的格式问题,比如字段带有空格,则使用adoconnection+adoquery可以查询和修改的操作,速度还可以。而是用fdconnection+fdquery则不行。反正我测试了很多次都不行。有可以的大佬请指教一下。

为什么不用txlsreadwrute控件?因为我发现一个问题,read后修改单元格再write后,如果表中带有透视图等内容,则再用ado或fd就打不开,提示数据格式错误(大概是这个意思,忘记了),还要打开一次excel表,保存一下才能使用(我猜是因为原表变更导致透视图不能更新导致,目前还没有找到解决的方法,刷新一下也不行),很不方便。不带透视图的表更新后没有此问题。有解决方法的大佬请指教一下。

http://www.lryc.cn/news/517209.html

相关文章:

  • 人工智能前沿探讨:从Transformer架构到机器意识与迁移学习的应用
  • Flutter Web 中文字体显示异常问题
  • 【Nginx】设置https和http同时使用同一个端口访问
  • clickhouse query_log 常用查询语句
  • 【Linux】RPMSG通讯协议介绍
  • Idea(中文版) 项目结构/基本设置/设计背景
  • 深入理解 Android 中的 ActivityInfo
  • Linux初识——基本指令
  • c/c++ 里的进程间通信 , 管道 pipe 编程举例
  • 【C++笔记】红黑树(RBTree)深度剖析和AVL树的对比分析
  • Pytorch初学
  • Golang学习笔记_20——error
  • 基于Vite+TS初始项目 | 不断更新
  • R语言装环境Gcc报错以及scater包的安装
  • 关于量子神经网络的思考
  • 注册中心如何选型?Eureka、Zookeeper、Nacos怎么选
  • 使用 Conda创建新的环境遇到的问题
  • Flutter项目开发模版,开箱即用(Plus版本)
  • Spring Boot + Jasypt 实现application.yml 属性加密的快速示例
  • arcgisPro加载CGCS2000天地图后,如何转成米单位
  • 多模态论文笔记——GLIDE(DALL·E 2模型核心部件)
  • mybatisPlus动态sql语句 ${ew.sqlSegment}
  • 【工具】HTML自动识别用户正在讲话 以及停止讲话
  • 小程序与内嵌网页的数据通信
  • Android - NDK:编译可执行程序在android设备上运行
  • 快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)
  • shell技能树-扩展变量
  • 基于RedHat9部署WordPress+WooCommerce架设购物网站
  • LabVIEW瞬变电磁接收系统
  • Docker入门篇[SpringBoot之Docker实战系列] - 第534篇