Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Bulkloading binary data #24

Open
mloeffen opened this issue Aug 17, 2011 · 0 comments
Open

Bulkloading binary data #24

mloeffen opened this issue Aug 17, 2011 · 0 comments

Comments

@mloeffen
Copy link

In the 0.5 version I added support for bulkloading binary data. Could you implement this in the latest version?

In DAL.cs I added

internal static object GetBinaryParameter(string name, string stringvalue)
{
Byte[] bytevalue;
if (string.IsNullOrEmpty(stringvalue))
{
bytevalue = null;
}
else {
if (stringvalue.StartsWith("0x"))
{
stringvalue = stringvalue.Substring(2);
}
bytevalue = new Byte[stringvalue.Length / 2];
for (Int32 i = 0; i < stringvalue.Length / 2; i++)
{
Byte.TryParse(stringvalue.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber, null, out bytevalue[i]);
}
}
DbParameter p = GetFactory().CreateParameter();
p.ParameterName = name;
p.Value = bytevalue;
return p;
}

And in BulkloadCmd.cs I replaced

                        //  add values to INSERT statement
                        foreach (string columnName in rowParams.Keys)
                        {
                            sb.Append("@" + columnName + ",");
                            cmd.Parameters.Add(DAL.GetParameter("@" + columnName, rowParams[columnName]));
                        }

with

                        //  add values to INSERT statement
                        foreach (string columnName in rowParams.Keys)
                        {
                            sb.Append("@" + columnName + ",");
                            if (rowParams[columnName].StartsWith("0x"))
                            {
                                cmd.Parameters.Add(DAL.GetBinaryParameter("@" + columnName, rowParams[columnName]));
                            }
                            else
                            {
                                cmd.Parameters.Add(DAL.GetParameter("@" + columnName, rowParams[columnName]));
                            }
                        }
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant