On Fri, Dec 26, 2008 at 7:16 AM, troels knak-nielsen <span dir="ltr">&lt;<a href="mailto:troelskn@gmail.com">troelskn@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I had a similar problem a few months back. Have a look over here:<br>
<a href="http://stackoverflow.com/questions/105816/how-do-i-access-a-char-through-ffi-in-plt-scheme" target="_blank">http://stackoverflow.com/questions/105816/how-do-i-access-a-char-through-ffi-in-plt-scheme</a></blockquote>
<div><br>Figures, the exact question I was asking was already asked - typical.<br><br>The answer doesn&#39;t really make sense to me. But, it gives me a place to start, and I&#39;ll mull it over from there.<br><br>Oh - and I have the same goals you had when you were working on the code mentioned in the above post. It&#39;s all about learning FFI...<br>
<br>Thanks,<br>Ben<br><br><br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
--<br>
troels<br>
<div><div></div><div class="Wj3C7c"><br>
On Fri, Dec 26, 2008 at 12:44 AM, Ben Simon &lt;<a href="mailto:benjisimon@gmail.com">benjisimon@gmail.com</a>&gt; wrote:<br>
&gt; Howdy -<br>
&gt;<br>
&gt; Now that my MySQL FFI implementation doesn&#39;t crash every few moments, I&#39;ve<br>
&gt; been able to make some headway into making the API useful. &nbsp;This has been<br>
&gt; going well, until I hit the row handling MySQL requires. Here&#39;s the C<br>
&gt; example they provide:<br>
&gt;<br>
&gt;<br>
&gt; MYSQL_ROW row;<br>
&gt; unsigned int num_fields;<br>
&gt; unsigned int i;<br>
&gt;<br>
&gt; num_fields = mysql_num_fields(result);<br>
&gt; while ((row = mysql_fetch_row(result)))<br>
&gt; {<br>
&gt; &nbsp; &nbsp;unsigned long *lengths;<br>
&gt; &nbsp; &nbsp;lengths = mysql_fetch_lengths(result);<br>
&gt; &nbsp; &nbsp;for(i = 0; i &lt; num_fields; i++)<br>
&gt; &nbsp; &nbsp;{<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;printf(&quot;[%.*s] &quot;, (int) lengths[i],<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row[i] ? row[i] : &quot;NULL&quot;);<br>
&gt; &nbsp; &nbsp;}<br>
&gt; &nbsp; &nbsp;printf(&quot;\n&quot;);<br>
&gt; }<br>
&gt;<br>
&gt; Apparently, when I call mysql_fetch_row(...) it will return back a big array<br>
&gt; of character data that is the series of columns. &nbsp;I can index into this<br>
&gt; array by calling mysql_num_fields and mysql_fetch_lengths.<br>
&gt;<br>
&gt; mysql_fetch_lengths returns back &nbsp;an array of numbers, while the row object<br>
&gt; is essentially an array.<br>
&gt;<br>
&gt; Given this, I think I need to focus on how Scheme handles C arrays. &nbsp;What&#39;s<br>
&gt; the cleanest way to handle this? &nbsp; I&#39;ve found some discussion about<br>
&gt; cvectors, is that I&#39;m looking for?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; -Ben<br>
&gt;<br>
&gt; --<br>
&gt; Have an idea for software? &nbsp;I can make it happen -<br>
&gt; <a href="http://www.ideas2executables.com" target="_blank">http://www.ideas2executables.com</a><br>
&gt; My Blog: <a href="http://benjisimon.blogspot.com" target="_blank">http://benjisimon.blogspot.com</a><br>
&gt;<br>
</div></div>&gt; _________________________________________________<br>
&gt; &nbsp;For list-related administrative tasks:<br>
&gt; &nbsp;<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
&gt;<br>
&gt;<br>
</blockquote></div><br><br clear="all"><br>-- <br>Have an idea for software? &nbsp;I can make it happen - <a href="http://www.ideas2executables.com">http://www.ideas2executables.com</a><br>My Blog: <a href="http://benjisimon.blogspot.com">http://benjisimon.blogspot.com</a><br>