{"id":1010,"date":"2011-10-26T20:04:53","date_gmt":"2011-10-27T01:04:53","guid":{"rendered":"http:\/\/anvil-of-time.com\/wordpress\/?p=1010"},"modified":"2021-03-11T09:15:52","modified_gmt":"2021-03-11T14:15:52","slug":"powerbuilder-assertion-failure","status":"publish","type":"post","link":"https:\/\/anvil-of-time.com\/powerbuilder\/powerbuilder-assertion-failure\/","title":{"rendered":"PowerBuilder Assertion Failure"},"content":{"rendered":"<p>Here is a minor head scratcher in PB11.5.<\/p>\n<pre>IF Len(dw_1.object.column_name[1]) &gt; 50 THEN\n   \/\/ and so on<\/pre>\n<p>This gives you a nifty messagebox:<br \/>\n<a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2011\/10\/assertionerror.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1011 size-full\" title=\"Assertion Failure - Invalid type in cm_intrinsic_len, file cmintrin.cpp,\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2011\/10\/assertionerror.png\" alt=\"\" width=\"281\" height=\"160\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2011\/10\/assertionerror.png 281w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2011\/10\/assertionerror-150x85.png 150w\" sizes=\"(max-width: 281px) 100vw, 281px\" \/><\/a><\/p>\n<p>To fix this do something like:<\/p>\n<pre>IF Len(string(dw_1.object.column_name[1])) &gt; 50 THEN...<\/pre>\n<p>or<\/p>\n<pre>string ls\nls = dw_1.object.column_name[1]\nIF Len(ls) &gt; 50 THEN...<\/pre>\n<p>Since there are two Len methods (one for blob and one for strings), Powerbuilder gets confused since accessing the datawindows data via dot notation returns an &#8216;any&#8217;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is a minor head scratcher in PB11.5. IF Len(dw_1.object.column_name[1]) &gt; 50 THEN \/\/ and so on This gives you a nifty messagebox: To fix this do something like: IF Len(string(dw_1.object.column_name[1])) &gt; 50 THEN&#8230; or string ls ls = dw_1.object.column_name[1] IF Len(ls) &gt; 50 THEN&#8230; Since there are two Len methods (one for blob and&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,10],"tags":[12,16],"_links":{"self":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1010"}],"collection":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/comments?post=1010"}],"version-history":[{"count":9,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1010\/revisions"}],"predecessor-version":[{"id":1995,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1010\/revisions\/1995"}],"wp:attachment":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/media?parent=1010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/categories?post=1010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/tags?post=1010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}