Postgres - problems with NpgsqlDataAdapter insert

Поиск
Список
Период
Сортировка
От Evan Sherwood
Тема Postgres - problems with NpgsqlDataAdapter insert
Дата
Msg-id BAY104-F30FB41BFF3DF5653E21E59B5E70@phx.gbl
обсуждение исходный текст
Список pgsql-interfaces
<div style="background-color:"><div class="RTE">Hi</div><div class="RTE"> </div><div class="RTE">I am having problems
withthe NpgsqlDataAdapter. I created an insert command and when I call the update method, I get an error:  ERROR:
42601:syntax error at or near":"</div><div class="RTE"> </div><div class="RTE">If I remove some of the columns from the
insertstatement, it works. It seems like there is a limit to the length of the command text.</div><div
class="RTE"> </div><divclass="RTE">I am using C# 2003 (.NET Framework 1.1) on Windowx XP.</div><div
class="RTE"> </div><divclass="RTE"> </div><div class="RTE">I create the data adapter using the following
code:</div><fontsize="2"><p class="RTE"></font><font color="#0000ff" size="2">string</font><font size="2"> poSelect =
"SELECTpo_number, supplier, originated_by, deliver_to, " +</font><p class="RTE"><font size="2">"po_status_code,
shipping_company,ship_point, service_order, " +</font><p class="RTE">"fob, freight, internal_comments,
external_comments,currency, " +<p class="RTE">"hide_cost_on_printout " +<p class="RTE">"FROM purchase_order";<p
class="RTE">m_daPO= <font color="#0000ff" size="2">new</font><font size="2"> NpgsqlDataAdapter(poSelect,
m_posDBConn);</font><pclass="RTE"><font color="#0000ff" size="2">string</font><font size="2"> poInsert = "INSERT INTO
purchase_order(po_number, supplier, currency, " +</font><p class="RTE">"originated_by, deliver_to, po_status_code,
shipping_company,fob, freight, " +<p class="RTE">"internal_comments, external_comments, service_order,
hide_cost_on_printout)" +<p class="RTE">"VALUES (:po_number, :supplier, :currency, " +<p class="RTE">":originated_by,
:deliver_to,:po_status_code, :shipping_company, :fob, :freight, " +<p class="RTE">":internal_comments,
:external_comments,service_order, :hide_cost_on_printout)";<p class="RTE">NpgsqlCommand poInsertCmd = <font
color="#0000ff"size="2">new</font><font size="2"> NpgsqlCommand(poInsert, m_posDBConn);</font><p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("po_number",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["po_number"].SourceColumn =
"po_number";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("supplier",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["supplier"].SourceColumn =
"supplier";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("currency",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["currency"].SourceColumn =
"currency";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("originated_by",DbType.Int16));</font><p
class="RTE">poInsertCmd.Parameters["originated_by"].SourceColumn= "originated_by";<p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("deliver_to",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["deliver_to"].SourceColumn =
"deliver_to";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("po_status_code",DbType.Int16));</font><p
class="RTE">poInsertCmd.Parameters["po_status_code"].SourceColumn= "po_status_code";<p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("shipping_company",DbType.Int16));</font><p
class="RTE">poInsertCmd.Parameters["shipping_company"].SourceColumn= "shipping_company";<p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("freight",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["freight"].SourceColumn =
"freight";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("fob",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["fob"].SourceColumn = "fob";<p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("internal_comments",DbType.String));</font><p
class="RTE">poInsertCmd.Parameters["internal_comments"].SourceColumn= "internal_comments";<p
class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2">
NpgsqlParameter("external_comments",DbType.String));</font><p
class="RTE">poInsertCmd.Parameters["external_comments"].SourceColumn= "external_comments";<p
class="RTE">m_daPO.InsertCommand= poInsertCmd;<p class="RTE"> <p class="RTE">After that I load the data using the Fill
methodof the data adapter. Then a new row is inserted into the "po" DataTable. I check the DataSet and the row has been
added.<pclass="RTE">Then I save the data. Here is first part of the code for the update:<font size="2"><p></font><font
color="#0000ff"size="2">try</font><font size="2"><p>{<p>m_posDBConn.Open();<p>poUpdate =
m_posDBConn.BeginTransaction();<p>m_daPO.InsertCommand.Transaction= poUpdate;<p></font><font color="#0000ff"
size="2">try</font><fontsize="2"><p>{<p>m_daPO.Update(m_dsPO, "po");      // this causes
error<p>poUpdate.Commit();</font><pclass="RTE">...<p class="RTE"> <p class="RTE">I would appreciate help with this as
soonas possible because it is impeding development.<p class="RTE">Thanks.<p class="RTE">Evan<p class="RTE"> </div> 

В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Christopher Kings-Lynne
Дата:
Сообщение: Re: [PATCHES] Proposed patch for error locations
Следующее
От: "Zlati"
Дата:
Сообщение: linking C with libpq