Thread: Value truncation on user defined type
I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncationon the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdisplay.php) ... 'in ASP vbScript.... dim conn, sql, rs, newUUID set conn = server.createobject("adodb.connection") conn.open("Provider=MSDASQL.1;Password=pass;Persist Security Info=True;User Id=user;Mode=ReadWrite;" & _ "Extended Properties=""DRIVER={PostgreSQL ANSI};" & _ "DATABASE=data;SERVER=10.0.0.2;PORT=5432;UID=user;PWD=pass;" & _ "SSLmode=disable;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;" & _ "ShowSystemTables=0;ConnSettings=set+sort%5Fmem%3D10241%3Bset+geqo%3Don%3B;Fetch=300;Socket=4096;" & _ "UnknownSizes=0;MaxVarcharSize=254;" & _ "MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;" & _ "UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;;LFConversion=1;" & _ "UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=1;" & _ "LowerCaseIdentifier=0;XaOpt=1""") sql = "select newid() as uuid;" set rs = conn.execute(sql) newUUID = rs("uuid").value response.write ("Length : " & len(newUUID) & "<BR>" & vbcrlf) response.write ("Type : " & vartype(newUUID) & "<BR>" & vbcrlf) response.write ("<table border=""1"">") for i = 1 to len(newUUID) response.write ("<tr><td>" & asc(mid(newUUID,i,1)) & "</td><td>" & server.htmlencode(mid(newUUID,i,1)) & "</td></tr>" &vbcrlf) next response.write ("</table>") rs.close set rs = nothing conn.close set conn = nothing The returned value is the correct length, but there must be a null inserted after the 16th character becasuse the returnvalue, which is a string type, abruptly terminates at that point. If I cast the uuid to type text, nothing gets truncated. This wasn't a problem in 7.03.02.00 ... ____________________________________________________________________________________ Expecting? Get great news right away with email Auto-Check. Try the Yahoo! Mail Beta. http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html
Could you send me directly the Mylog output ? regards, Hiroshi Inoue CG wrote: > I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncationon the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdisplay.php) ... > > > 'in ASP vbScript.... > > dim conn, sql, rs, newUUID > set conn = server.createobject("adodb.connection") > conn.open("Provider=MSDASQL.1;Password=pass;Persist Security Info=True;User Id=user;Mode=ReadWrite;" & _ > "Extended Properties=""DRIVER={PostgreSQL ANSI};" & _ > "DATABASE=data;SERVER=10.0.0.2;PORT=5432;UID=user;PWD=pass;" & _ > "SSLmode=disable;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;" & _ > "ShowSystemTables=0;ConnSettings=set+sort%5Fmem%3D10241%3Bset+geqo%3Don%3B;Fetch=300;Socket=4096;" & _ > "UnknownSizes=0;MaxVarcharSize=254;" & _ > "MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;" & _ > "UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;;LFConversion=1;" & _ > "UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=1;" & _ > "LowerCaseIdentifier=0;XaOpt=1""") > > sql = "select newid() as uuid;" > > set rs = conn.execute(sql) > newUUID = rs("uuid").value > > response.write ("Length : " & len(newUUID) & "<BR>" & vbcrlf) > response.write ("Type : " & vartype(newUUID) & "<BR>" & vbcrlf) > response.write ("<table border=""1"">") > for i = 1 to len(newUUID) > response.write ("<tr><td>" & asc(mid(newUUID,i,1)) & "</td><td>" & server.htmlencode(mid(newUUID,i,1)) & "</td></tr>"& vbcrlf) > next > response.write ("</table>") > > rs.close > set rs = nothing > conn.close > set conn = nothing > > The returned value is the correct length, but there must be a null inserted after the 16th character becasuse the returnvalue, which is a string type, abruptly terminates at that point. > > If I cast the uuid to type text, nothing gets truncated. This wasn't a problem in 7.03.02.00 ...
I wrote: > Could you send me directly the Mylog output ? I seem to have found the cause. Please try the drivers on testing for 8.2.0402 at http://www.geocities.jp/inocchichichi/psqlodbc/index.html . > CG wrote: >> I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncationon the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdisplay.php) ... >> regards, Hiroshi Inoue