提交 07baf44b 编写于 作者: I Ivan Masmitjà 提交者: Adam Schroder

Add "returning" primary key

上级 f3f3ddfc
using System;
using System.Data;
namespace NPoco.DatabaseTypes
{
public class FirebirdDatabaseType : DatabaseType
......@@ -24,6 +27,25 @@ public override string GetDefaultInsertSql(string tableName, string[] names, str
return string.Format("INSERT INTO {0} ({1}) VALUES ({2})", EscapeTableName(tableName), string.Join(",", names), string.Join(",", parameters));
}
public override object ExecuteInsert<T>(Database db, IDbCommand cmd, string primaryKeyName, T poco, object[] args)
{
if (primaryKeyName != null)
{
cmd.CommandText += string.Format(" returning {0}", EscapeSqlIdentifier(primaryKeyName));
var param = cmd.CreateParameter();
param.ParameterName = primaryKeyName;
param.Value = DBNull.Value;
param.Direction = ParameterDirection.ReturnValue;
param.DbType = DbType.Int64;
cmd.Parameters.Add(param);
db.ExecuteNonQueryHelper(cmd);
return param.Value;
}
db.ExecuteNonQueryHelper(cmd);
return -1;
}
public override string GetProviderName()
{
return "FirebirdSql.Data.FirebirdClient";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册