在CFScript中获取新插入的记录ID

2024-01-03

我有一些代码将记录与请求信息一起插入到日志中。发送请求并发回响应后,我将使用响应信息更新记录。 有没有办法获取新插入记录的 ID,以便我可以引用它并在收到响应后更新它? 我知道使用 CF 标签可以使用 SET NO COUNT,但它似乎在 CFScript 中不起作用。 INSERT 语句中似乎没有返回任何内容。

        query = new query();
        query.name = "queryResult";
        query.setDataSource('dsn');
        sql = "

        INSERT INTO paymentlogs (
            type, name, address1, address2, country, provstate, city, pocode, cclastfour, expirymonth, expiryyear, cardtype, requestxml, ipaddress, clid, subscriptionid, total, createdat, createdby, updatedat, updatedby
        )
        VALUES
        (
            :type, :name, :address1, :address2, :country, :provstate, :city, :pocode, :cclastfour, :expirymonth, :expiryyear, :cardtype, :requestxml, :ipaddress, :clid, :subscriptionid, :total, :now, :username, :now, :username
        )

        ";
        query.setSQL(sql);

        query.addParam(name="clid", cfsqltype="cf_sql_varchar", value="#formValues.clid#");
        query.addParam(name="type", cfsqltype="cf_sql_varchar", value="#arguments.type#");
        query.addParam(name="name", cfsqltype="cf_sql_varchar", value="#formValues.ccname#");
        query.addParam(name="address1", cfsqltype="cf_sql_varchar", value="#formValues.ccaddress1#");
        query.addParam(name="address2", cfsqltype="cf_sql_varchar", value="#formValues.ccaddress2#");
        query.addParam(name="country", cfsqltype="cf_sql_varchar", value="#formValues.cccountry#");
        query.addParam(name="provstate", cfsqltype="cf_sql_varchar", value="#formValues.ccprovstate#");
        query.addParam(name="city", cfsqltype="cf_sql_varchar", value="#formValues.cccity#");
        query.addParam(name="pocode", cfsqltype="cf_sql_varchar", value="#formValues.ccpocode#");
        query.addParam(name="cclastfour", cfsqltype="cf_sql_varchar", value="#Right(formValues.ccnumber, 4)#");
        query.addParam(name="expirymonth", cfsqltype="cf_sql_varchar", value="#formValues.ccexpirymonth#");
        query.addParam(name="expiryyear", cfsqltype="cf_sql_varchar", value="#formValues.ccexpiryyear#");
        query.addParam(name="cardtype", cfsqltype="cf_sql_varchar", value="#getCardType(formValues.cctype)#");
        query.addParam(name="requestxml", cfsqltype="cf_sql_varchar", value="#soapBody#");
        query.addParam(name="ipaddress", cfsqltype="cf_sql_varchar", value="#CGI.REMOTE_ADDR#");
        query.addParam(name="subscriptionid", cfsqltype="cf_sql_varchar", value="#formValues.subscriptionid#");
        query.addParam(name="total", cfsqltype="cf_sql_float", value="#formValues.grandTotalAmount#");
        query.addParam(name="username", cfsqltype="cf_sql_varchar", value="#formValues.username#");
        query.addParam(name="now", cfsqltype="cf_sql_timestamp", value="#now()#");
        result = query.execute().getResult();
        writedump(result);abort;

我在 Google 上搜索过,但找不到任何在 CFScript 中执行此操作的方法。我不想查询表中的最后一行,因为这不太可靠。有没有办法在执行 INSERT 查询后获取新插入的记录 ID?

我正在使用 mySQL。奇怪的是,当我转储上面的“结果”变量时,CF 抱怨结果未定义。当我检查表时,我可以看到脚本确实执行并且记录已插入。


它应该位于getPrefix().generatedkey

genKey = result.getPrefix().generatedkey;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在CFScript中获取新插入的记录ID 的相关文章

随机推荐

  • 如何在 Ubuntu 15.10 中将 Robomongo 从 tar.gz 文件安装为程序

    如今 robomongo 开发人员发布了 robomongo 的新版本tar gz not in deb易于双击安装的软件包 但该选项不再可用 那么如何将其安装为Ubuntu中的程序 我尝试解压软件包并安装但失败 admin admin l
  • 该代理的会话已存在

    我正在使用 TFS 执行夜间构建 其中包括使用TFS测试代理 https www visualstudio com en us docs test lab management test machines install configure
  • 使用 Java 将宏添加到 Excel 电子表格

    我正在开发一个创建 Excel 电子表格的应用程序 我正在使用 Javadocx4j http dev plutext org trac docx4j库 但它没有宏支持 因为它不是通过 Open XML API 提供的 我只是想知道是否有人
  • 带有可选参数的智能 URL?

    我目前在我的 htaccess 文件中包含以下内容 RewriteEngine On RewriteBase RewriteCond REQUEST FILENAME f RewriteCond REQUEST FILENAME l Rew
  • 将不同的嵌入结构投影到相同的名称

    我正在编写一个执行这些任务的 python 脚本 查询带有嵌入文档的 MongoDB 集合 聚合和项目更改查询中返回的字段名称以匹配 u 约定 通过 REST API 将值导入到 ServiceNow ISSUE 嵌入的文档结构不一致 HO
  • 通用简单 3D 矩阵旋转问题

    我的 3D 对象旋转有问题 它是用 java 编写的 但这并不重要 的背景 我有一个简单的 3D 模型 您是其中的第一人称玩家 您向上移动鼠标以向上看 即按 3D 的 x 轴旋转 向下移动鼠标以向下看 沿相反方向旋转 But 我还有左 右箭
  • android.os.Build.SERIAL 是唯一的吗?

    我想为适用于手机和平板电脑的 Android 设备使用唯一的 ID IMEI 不适用于没有 SIM 卡的设备 有时 MAC 地址返回 null 我不确定 android os Build SERIAL 是否唯一 有人知道这件事吗 谢谢 问候
  • Eclipse 缺少数据库连接

    我在 Eclipse 中缺少 MySQL 和其他连接配置文件 因此 JBoss 服务器会抛出错误 由于声誉问题 无法发布图片 我只有 通用 JDBC HSQLDB 使用 Eclipse Kepler 和 jboss eap 6 1 已经在我
  • 使用 C 获取操作系统名称 [Linux,可移植发行版:Centos、Debian、Fedora、OpenSUSE、RedHat、Ubuntu]

    我知道我可以使用这个简单的命令检查我的操作系统名称 lsb release ds 但我也知道 它不能在我需要的所有平台上移植 我试过struct utsname info and uname info 它工作得很好 但只给了我 基本 名称
  • 在 ggplot2 r 中操作 geom_bar 和 coord_polar 的描绘

    我正在 ggplot 中使用 Polar coord 构建同心圆图表 我需要删除特定的线 这是代码和情节 df lt data frame A letters 1 12 B c rep Dim 1 4 rep Dim 2 4 rep Dim
  • 实例化(子)类时,您将对象声明为什么“类型”有什么区别吗?

    假设我有一个名为ParentClass和一个名为ChildClass The ParentClass是抽象的 并且ChildClass延长了ParentClass根据 Java 术语 此外 ParentClass有一个构造函数 它需要一个i
  • 使用 sed/awk 打印具有匹配模式或另一个匹配模式的行

    我需要打印文件中与模式匹配的行OR使用不同的模式awk questions tagged awk or sed questions tagged sed 我觉得这是一项容易的任务 但我似乎找不到答案 有任何想法吗 POSIX 方式 awk
  • new Function 和 vm 有什么区别?

    我想知道两者之间有什么区别新功能 https developer mozilla org en US docs Web JavaScript Reference Global Objects Function 实际上 eval https
  • 将列表数组转换为 Keras 输入

    给定一个以下形式的数组 array list 21603 125 737 579 2065 10399 1175 0 0 0 list 1896 3917 498 296 1452 523 754 450 3795 341 dtype ob
  • 子类型字段编号顺序依赖于 protobuf-net

    我可以看到 protobuf net 似乎需要在运行类型模型上具有确定性排序 有什么好的策略可以使用而不需要在每个类上都有属性来进行排序 如果您是通过属性实现的 protobuf 本身会如何执行 model Add typeof IMess
  • 在github工作流程中运行超时命令

    我有一个类似于下面代码的 GitHub 操作 我有一个文件本来打算永远运行 但在需要时会被用户中断 我尝试过使用timeout但它不起作用 并给出了一些奇怪的消息 对此的一个小警告是 如果该过程超时 我希望这不会引发错误 以便操作继续并报告
  • WPF 中的 BitmapImage 会锁定文件

    I use Dim bmi As New BitmapImage New Uri fiInfo FullName UriKind Absolute bmi CacheOption BitmapCacheOption OnLoad 这不使用加
  • 使用 javascript 查找渲染的换行符

    我有这样的情况 div width 200px div example example example example example div 文本填满整个宽度时自动跳到下一行 div 使用 javascript 如何在上面的行中呈现渲染内
  • 几次函数调用后变量的值消失

    我正在制作一个支持代理的解析器 因为使用免费代理 它们经常死掉 所以我的代码切换到其他代理 这里没有问题 但是切换的原因是我多次重新运行函数 2 7 和我解析的数据消失了 我确信问题很愚蠢 但我自己找不到答案 谢谢回复 想一想 应该以某种方
  • 在CFScript中获取新插入的记录ID

    我有一些代码将记录与请求信息一起插入到日志中 发送请求并发回响应后 我将使用响应信息更新记录 有没有办法获取新插入记录的 ID 以便我可以引用它并在收到响应后更新它 我知道使用 CF 标签可以使用 SET NO COUNT 但它似乎在 CF