- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在做一些业务逻辑并想运行一些代码
select id from blah where foo = 1234 for update nolock
当 blah
中的相应行被锁定时,此代码将抛出 DataMapper::SQLError。这是可取的行为;我想捕获这个错误并用它来通知我的应用程序逻辑。但我想重新抛出任何其他 SQL 错误,因为它们与我正在编程的情况不同,并且以相同的方式捕获它们是错误的。
返回的错误对象包含一个字符串错误消息和一个数字代码 (50463045
)。看起来比较数字代码会很棒,但我不想在我的代码中嵌入常量 50463045
而不了解它是如何确定的。值得注意的是,Postgres manual suggests that the error code for this state是 55P03
,这似乎不是一回事。我不知道我可以在多大程度上信任这个神奇的数字,也不知道除了实验之外如何确定它,所以我不太习惯使用它。
错误码是如何确定的?
最佳答案
互联网非常无用,因为搜索有关 DataObjects SQL 错误的内容似乎主要返回其他软件引发错误的问题,而不是有关错误本身的信息......但是在找到正确的源代码并浏览了源代码我终于找到了do_postgres.c :
void do_postgres_raise_error(VALUE self, PGresult *result, VALUE query) {
const char *message = PQresultErrorMessage(result);
char *sql_state = PQresultErrorField(result, PG_DIAG_SQLSTATE);
int postgres_errno = MAKE_SQLSTATE(sql_state[0], sql_state[1], sql_state[2], sql_state[3], sql_state[4]);
PQclear(result);
data_objects_raise_error(self, do_postgres_errors, postgres_errno, message, query, rb_str_new2(sql_state));
}
注意 5 个字符的状态如何传递给 MAKE_SQLSTATE
...,然后也传递给 data_objects_raise_error
本身。我无法找到定义 MAKE_SQLSTATE 的位置来弄清楚正在进行哪些疯狂的操作来生成这个整数,但看起来我可以直接使用错误对象的 .sqlstate
属性,并使我的条件e.sqlstate == '55P03'
。
关于ruby - DataObjects::SQLError 对象的 .code 如何对应于数据库发出的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303725/
在 SilverStripe 3 中,我有两个相关的数据对象,Order和 OrderItem . Order有很多OrderItems . OrderItem有一个 Order . 我在管理 Ord
当我从 ItemType 的子类实例调用此方法 DataObject.GetData(typeof(ItemType)) 时,该方法返回 null ... 我如何获得来自子类型的数据?谢谢 最佳答案
我有一个默认排序的 DataObject: class Author extends DataObject { private static $db = array('Name' => 'Va
我有一个在我的电脑上运行的宏。当其他人运行它时,它会抛出以下异常: "Run-time error '-2147221036 (800401d4)' DataObject:PutInClipboard
我正在尝试使用 _t() 方法翻译一个 DataObject。 我一直在 Pages 上使用它没有问题,但它似乎不适用于数据对象。 class SliderItem extends DataObjec
Silverstripe DataObject - 我想向当前类添加拖放排序,该类扩展数据对象,就像页面中存在的那样。因此,当删除时,它会更新该 View 中所有数据对象的 OrderBy 字段。我创
我有一个简单的 WebApi 项目来处理各种格式的返回数据。我正在尝试使用 KnockoutJs 在前端使用数据,但我有一个变量未定义的错误,我似乎无法理解为什么。下面是我正在处理的简单代码。请随时指
我传递给 DataMapper all 的字符串参数没有插入到最终查询中,并且查询已损坏: LeadEmail.all :email => 'gmail' 抛出以下错误: DataObjects::S
我正在尝试为 SilverStripe 站点做一些非常不同的事情:在几个子页面上是数据表,这些表每个都有自己的一组列标题,有些表的列比其他表多。我想避免在富文本编辑器中构建表格,因为这很容易出现很多错
我有一个页面,这个页面有很多,一个或没有评论。有一次我只想显示评论的数量,而不是遍历所有评论。然而,由于翻译需要区分评论计数的两个复数版本,所以简单调用 $Comment.Count 就不行了。由于翻
我的应用程序崩溃并出现以下错误: -[Data Object set ECGCount:]: unrecognized selector sent to instance 0x281671ad0 我试
这部分是咆哮,部分是真正的好奇心。有谁知道为什么System.Windows.Forms.DataObject's SetText(String)方法不接受空字符串作为参数?它声明这将抛出 Argum
所以我正在做一些业务逻辑并想运行一些代码 select id from blah where foo = 1234 for update nolock 当 blah 中的相应行被锁定时,此代码将抛出
我有 Azure 移动服务,它正在从单个(只需要这一张表的数据)wordpress wp_posts 表中获取数据。 在模型类中,我为主键定义了[Key]。表wp_posts只有一个PK 但我收到错误
是否可以创建一个新的 PayPal.Payments.DataObjects.TransactionResponse? 我目前正致力于将(我们的旧 ERP 系统)升级到 TLS 1.2,我需要覆盖返回
我不知道为什么 GetData() 方法需要一个 Type 的参数,我认为 Type 是指定对象应该是哪个类/类型的。我有一个名为 GraphicsPathWrap 的结构,通过实现 ISeriali
目前,对于有枚举的搜索字段,自动脚手架会生成一个下拉列表,只允许进行一个选择。我有兴趣使用现有过滤器来更改它以允许多项选择。 给定以下数据对象... class MyDataObject extend
我是 Silverstripe 的新手, 在 CMS 页面上,我可以添加一个下拉表单项,我看到我可以创建选项。但。我想要做的是从一个数组中填充下拉列表。我该怎么做? 数组看起来像这样: $dropdo
SilverStripe 的 DataObject 为我们提供了以下内容: ID - 主键 但是如何定义组合键(由2个或更多列组成的主键)呢?我已经搜索了文档,但在任何地方都找不到此信息。 最佳答案
我正在尝试为我的 NetBeans 模块实现 NavigatorPanel。现在,只要关联的 DataObject 被修改,我总是会收到通知,以便我可以调用解析器并更新导航器。 我尝试向 DataOb
我是一名优秀的程序员,十分优秀!