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

Add "returning" primary key

上级 f3f3ddfc
using System;
using System.Data;
namespace NPoco.DatabaseTypes namespace NPoco.DatabaseTypes
{ {
public class FirebirdDatabaseType : DatabaseType public class FirebirdDatabaseType : DatabaseType
...@@ -24,6 +27,25 @@ public override string GetDefaultInsertSql(string tableName, string[] names, str ...@@ -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)); 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() public override string GetProviderName()
{ {
return "FirebirdSql.Data.FirebirdClient"; return "FirebirdSql.Data.FirebirdClient";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册