小编bri*_*ins的帖子

Postgres整数数组作为参数?

据我所知,在Postgres pure中,您可以将整数数组传递给函数,但.NET数据提供程序Npgsql不支持这种情况.

我目前有一个DbCommand,我在其中加载对存储过程的调用,添加参数并执行标量以获取用于填充对象的Id.

现在需要将n个整数作为参数.这些用于创建子记录,将新创建的记录通过它的id链接到整数参数.

理想情况下,我不必为每个整数在我的DbCommand上进行多次ExecuteNonQuery调用,因此我将构建一个csv字符串作为将在数据库端拆分的参数.

我通常生活在使用Db抽象的LINQ 2 SQL中,使用手动数据访问来处理这个项目它只是变得有点脏,人们通常如何将这些参数传递给postgres?

arrays postgresql argument-passing

33
推荐指数
2
解决办法
8万
查看次数

直接通过Name绑定SQLite参数

我最近 - 最近 - 开始学习如何为iOS编程,并且被(在我看来)在SQLite3中公然疏忽所困扰.让我通过说在上周之前我对Mac,Objective C,Xcode,iOS或SQLite没有(实际)经验来证明这一点,所以我对于在经过验证的工具领域跳华尔兹并发现明显错误没有任何妄想在我第一次尝试.我认为有一个很好的解释.

然而,在使用SQL Server,MySQL和PostgreSQL过去几个月之后,我惊讶地发现SQLite没有更好的功能来按名称添加参数.我在网上找到的所有东西(文档,论坛[包括SO])都说使用整数索引来分配参数,如果你修改了你的查询,这似乎很难维护.即使您可以在语句中命名参数并执行类似的操作

sqlite3_bind_int(stmt, sqlite3_bind_parameter_index(stmt, "@my_param"), myInt);
Run Code Online (Sandbox Code Playgroud)

似乎没有人这样做.事实上,似乎没有人试图将其自动化; 我能找到的唯一替代方法是使用参数数组和循环计数器,并检查每个参数以确定要插入的对象类型.我最初考虑过类似的方法,但是a)我的老板的立场是数据库参数应该始终进行类型检查(我同意,虽然我知道SQLite字段不是强类型的,我在技术上也可以做到这一点),b)它感觉就像一个不优雅的黑客,并且c)我认为这种方法没有被广泛使用的原因.所以:

1)为什么SQLite中没有接受参数名称的绑定方法(例如,'const char')?或者在那里,我错过了什么?

2)为什么没有人似乎使用上述示例的方法?

我稍微挖了一下源代码,并认为我可以轻松地修改库或者只编写我自己的(类型)类方法,这些方法可以为我做上述操作,但我假设有一个原因没有人将它构建到SQLite中.我唯一的猜测是,在[insert iDevice here]中找到参数索引所需的额外内存和周期太宝贵了,并且不值得使用参数名称...?

任何见解将不胜感激.

sqlite parameters xcode objective-c ios

10
推荐指数
1
解决办法
4129
查看次数