<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-NZ link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>There are a number of reasons why a lot of developers quickly move on to using CreateProcess instead of ShellExecute.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Gives you a lot more control over the environment in which to run the app you’re trying to invoke.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Can control the environment variables, get handles to the stdout and stderr streams, etc.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Cheers,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Conor<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> delphi-bounces@listserver.123.net.nz [mailto:delphi-bounces@listserver.123.net.nz] <b>On Behalf Of </b>John Bird<br><br></span></p><div><div><div><p class=MsoNormal><strong><span style='font-family:"Arial","sans-serif";color:black'>I recall there are undocumented limits on the length of line that can be executed as well from cmd and batch files, as well features such as redirect ( &gt; and &gt;&gt; and | ).&nbsp; These may or may not work at cmd prompt level and may not work the same from a batch file, and similar limitations likely apply to Shellexecute.&nbsp;&nbsp; I was wondering if the length of your command might be hitting such a limit.</span></strong><span style='font-family:"Arial","sans-serif";color:black'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><strong><span style='font-family:"Arial","sans-serif";color:black'>The advantage of a batch file is you can test it from a cmd prompt, if it works there then if should work from shellexecute.</span></strong><span style='font-family:"Arial","sans-serif";color:black'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><strong><span style='font-family:"Arial","sans-serif";color:black'>I would also be inclined to put the SQL into a separate file if there was an option to do that just for tidiness, or at least put the SQL and the encoding options into separate strings, so that each can be made standard.</span></strong><span style='font-family:"Arial","sans-serif";color:black'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>&nbsp;<o:p></o:p></span></p></div><div><div><p class=MsoNormal><b><span style='font-family:"Calibri","sans-serif";color:black'>From:</span></b><span style='font-family:"Calibri","sans-serif";color:black'> <a href="mailto:Conor_Boyd@trimble.com" title="Conor_Boyd@trimble.com">Conor Boyd</a> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p></span></p></div></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>You can only ShellExecute one command at a time.&nbsp; You’ll have to have two separate calls to ShellExecute for your two invocations of ogr2ogr.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Only other way I can think might work would be to write a temporary batch file with both ogr2ogr invocations in it, and ShellExecute that, but I think two separate calls to ShellExecute would be clearer.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'> <a href="mailto:delphi-bounces@listserver.123.net.nz">delphi-bounces@listserver.123.net.nz</a> <a href="mailto:[mailto:delphi-bounces@listserver.123.net.nz]">[mailto:delphi-bounces@listserver.123.net.nz]</a> <b>On Behalf Of </b>Bob Pawley<br></span><span style='color:black'>&nbsp;<o:p></o:p></span></p><div><div><div><p class=MsoNormal><span style='color:#00002B'>Thanks,&nbsp; I missed that. However I still get only the second table blocks. The first table entities is missed.<o:p></o:p></span></p></div><div><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>&nbsp;<o:p></o:p></span></p></div><div><div><p class=MsoNormal style='background:whitesmoke'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'> <a href="mailto:Conor_Boyd@trimble.com" title="Conor_Boyd@trimble.com">Conor Boyd</a> <o:p></o:p></span></p></div></div></div><div><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:black'>&nbsp;<o:p></o:p></span></p></div></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Unless I’m reading it wrong, you’re missing a backslash in the path that you’re constructing to the ogr2ogr binary.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='color:#00002B'>ProgramName :=<o:p></o:p></span></p><p class=MsoNormal><span style='color:#00002B'>&nbsp;&nbsp;&nbsp;&nbsp; '&quot;'+s+'\Quantum GIS Wroclaw\bin'+<o:p></o:p></span></p><p class=MsoNormal><span style='color:#00002B'>'ogr2ogr&quot;<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I think there should be a slash after the “bin”?<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><div><div><div><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'> <a href="mailto:delphi-bounces@listserver.123.net.nz">delphi-bounces@listserver.123.net.nz</a> <a href="mailto:[mailto:delphi-bounces@listserver.123.net.nz]">[mailto:delphi-bounces@listserver.123.net.nz]</a> <b>On Behalf Of </b>Bob Pawley<br></span><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>I’m having a further problem with shell execute. There seems to be a dearth of information on the web other than a simple “open” procedure.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>The following two part code performs well when I copy and paste it into command prompt.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>However when I use it in shell execute there is a problem getting both parts to run together.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>In shell execute each part of the code does its thing when the other part is commented out.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>I have tried joining the two parts with the ogr2ogr command &amp;&amp;, and as it appears below. I have also removed the second path to ogr2ogr with no joy.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>I either get “unable to run” or the second part of the code is recognized with the first part being ignored.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>The following is my command prompt code – which works as shown<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>set PGCLIENTENCODING=LATIN1&amp;&amp;set DXF_ENCODING=LATIN1&amp;&amp;set DXF_INLINE_BLOCKS=FALSE&amp;&amp;set DXF_MERGE_BLOCK_GEOMETRIES=FALSE&amp;&amp;ogr2ogr -f &quot;PostgreSQL&quot; PG:&quot;host=localhost user=postgres dbname=*** password=*****&quot; Water2000.dxf&nbsp;&nbsp; -lco DIM=2 -nlt GEOMETRY -sql &quot;select layer, linetype, subclasses, ogr_style, blockname, blockangle, blockscale, text from entities&quot; -append -update -skipfailures <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>set PGCLIENTENCODING=LATIN1&amp;&amp;set DXF_ENCODING=LATIN1&amp;&amp;set DXF_INLINE_BLOCKS=FALSE&amp;&amp;set DXF_MERGE_BLOCK_GEOMETRIES=FALSE&amp;&amp;ogr2ogr -f &quot;PostgreSQL&quot; PG:&quot;host=localhost user=postgres dbname=*** password=****&quot; Water2000.dxf&nbsp;&nbsp; -lco DIM=2 -nlt GEOMETRY -append -update -skipfailures -sql &quot;select layer, linetype, subclasses, ogr_style, blockname, text from blocks&quot; <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>Here is the shell execute code which is giving me a challenge -<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>ProgramName :=<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;&nbsp;&nbsp;&nbsp; '&quot;'+s+'\Quantum GIS Wroclaw\bin'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>'ogr2ogr&quot; &quot;-f&quot; '+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>'&quot;PostgreSQL&quot;;'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' PG:&quot;host='+DBHost+' user=postgres dbname='+DBName+' password='+Pass+'&quot; &quot;'+ DXFfile +'&quot; '+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' --config DXF_INLINE_BLOCKS FALSE --config DXF_MERGE_BLOCK_GEOMETRIES FALSE --config DXF_ENCODING=UTF8 '+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' -lco DIM=2 -nlt GEOMETRY -overwrite -skipfailures'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' -sql &quot;select layer, linetype, subclasses, ogr_style, blockname, blockangle, blockscale, text from entities&quot;'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>&nbsp;&nbsp;&nbsp; '&quot;'+s+'\Quantum GIS Wroclaw\bin'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>'ogr2ogr&quot;&quot;-f&quot;'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' &quot;PostgreSQL&quot;;'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>'PG:&quot;host='+DBHost+' user=postgres dbname='+DBName+' password='+Pass+'&quot; &quot;'+ DXFfile +'&quot; '+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' --config DXF_INLINE_BLOCKS FALSE --config DXF_MERGE_BLOCK_GEOMETRIES FALSE --config DXF_ENCODING=UTF8 '+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' -lco DIM=2 -nlt GEOMETRY -overwrite -skipfailures'+<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#00002B'>' -sql &quot;select layer, linetype, subclasses, ogr_style, blockname, text from blocks&quot;';<o:p></o:p></span></p></div></div></div></div></div></div></div></div></div></div></body></html>