Обсуждение: Npgsql MS 2.0 - char bug?
Hi, I'm running the MS .NET 2.0 version of Npgsql (1.0RC1) with Visual Basic 2005. My primary key (domain_id) in the "domain" table is defined as char(10). I have the query: UPDATE domain SET domain = :domain, last_updated_user = CURRENT_USER, last_updated_date = NOW() WHERE domain_id = :domain_id; And the parameters are defined as: :domain -> Name: "domain"-> Type: varchar-> Size: 200-> sourceColumn: "domain" :domain_id -> Name: "domain_id" -> Type: char -> Size: 10 -> sourceColumn: "domain_id" That fails with the error "the UpdateCommand affected 0 of 1 rows expected." The same with the DeleteCommand. If I change the parameter ":domain_id" to... :domain_id -> Name: "domain_id" -> Type: varchar -> Size: 10 -> sourceColumn: "domain_id" ... it works on both. Is this a bug, or am I missing something? Thanks Andy
Andy, char(10) is padded with spaces while varchar is not. Don't you char(X) unless you need the padding Jim ---------- Original Message ----------- From: Andy Shellam <andy@andycc.net> To: pgsql-interfaces@postgresql.org Sent: Sun, 11 Jun 2006 12:32:50 +0100 Subject: [INTERFACES] Npgsql MS 2.0 - char bug? > Hi, > > I'm running the MS .NET 2.0 version of Npgsql (1.0RC1) with Visual Basic > 2005. > > My primary key (domain_id) in the "domain" table is defined as char(10). > > I have the query: > > UPDATE domain SET domain = :domain, last_updated_user = CURRENT_USER, > last_updated_date = NOW() WHERE domain_id = :domain_id; > > And the parameters are defined as: > > :domain -> Name: "domain" > -> Type: varchar > -> Size: 200 > -> sourceColumn: "domain" > > :domain_id -> Name: "domain_id" > -> Type: char > -> Size: 10 > -> sourceColumn: "domain_id" > > That fails with the error "the UpdateCommand affected 0 of 1 rows > expected." The same with the DeleteCommand. > > If I change the parameter ":domain_id" to... > > :domain_id -> Name: "domain_id" > -> Type: varchar > -> Size: 10 > -> sourceColumn: "domain_id" > > ... it works on both. > > Is this a bug, or am I missing something? > > Thanks > > Andy > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org ------- End of Original Message -------
Hi Jim, Thanks for the reply. I've used char because the field data is always going to be 10 characters, without exception. It's basically an ID field, which is generated automatically by the field's default definition - and results in values like DOM0000001, DOM0000002, DOM0000003 etc. Andy Jim Buttafuoco wrote: > Andy, > > char(10) is padded with spaces while varchar is not. Don't you char(X) unless you need the padding > > Jim > > > ---------- Original Message ----------- > From: Andy Shellam <andy@andycc.net> > To: pgsql-interfaces@postgresql.org > Sent: Sun, 11 Jun 2006 12:32:50 +0100 > Subject: [INTERFACES] Npgsql MS 2.0 - char bug? > >> Hi, >> >> I'm running the MS .NET 2.0 version of Npgsql (1.0RC1) with Visual Basic >> 2005. >> >> My primary key (domain_id) in the "domain" table is defined as char(10). >> >> I have the query: >> >> UPDATE domain SET domain = :domain, last_updated_user = CURRENT_USER, >> last_updated_date = NOW() WHERE domain_id = :domain_id; >> >> And the parameters are defined as: >> >> :domain -> Name: "domain" >> -> Type: varchar >> -> Size: 200 >> -> sourceColumn: "domain" >> >> :domain_id -> Name: "domain_id" >> -> Type: char >> -> Size: 10 >> -> sourceColumn: "domain_id" >> >> That fails with the error "the UpdateCommand affected 0 of 1 rows >> expected." The same with the DeleteCommand. >> >> If I change the parameter ":domain_id" to... >> >> :domain_id -> Name: "domain_id" >> -> Type: varchar >> -> Size: 10 >> -> sourceColumn: "domain_id" >> >> ... it works on both. >> >> Is this a bug, or am I missing something? >> >> Thanks >> >> Andy >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 4: Have you searched our list archives? >> >> http://archives.postgresql.org > ------- End of Original Message ------- > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq > > !DSPAM:14,448c098d256841132922231! > >
--- Andy Shellam <andy@andycc.net> escreveu: > Hi, > Hi Andy. Sorry for late response.... Yahoo mail filtered this mail as spam. :( > I'm running the MS .NET 2.0 version of Npgsql (1.0RC1) with Visual Basic > 2005. > > My primary key (domain_id) in the "domain" table is defined as char(10). > > I have the query: > > UPDATE domain SET domain = :domain, last_updated_user = CURRENT_USER, > last_updated_date = NOW() WHERE domain_id = :domain_id; > Do you have a simple test case, so I can run and check if there is a problem with Npgsql? Thanks in advance. -- Regards, Francisco Figueiredo Jr. Npgsql Lead Developer - http://npgsql.projects.postgresql.org "My grandfather once told me that there are two kinds of people: those who work and those who take the credit. He told me to try to be in the first group; there was less competition there." - Indira Gandhi _______________________________________________________ Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. http://mail.yahoo.com.br/