[Ironpython-users] IronPython SQLite interface

Doug Blank doug.blank at gmail.com
Tue Feb 11 12:44:29 CET 2014


Issue #173 with patch:

https://github.com/IronLanguages/main/issues/173

That works for me! I just removed the removal of the slash. I don't know
what that will do for Windows users that had a path that started with "/".

We distribute our own DLLs, so no rush for a new release.

Thanks!

-Doug


On Tue, Feb 11, 2014 at 4:39 AM, Jeff Hardy <jdhardy at gmail.com> wrote:

> On Mon, Feb 10, 2014 at 10:15 PM, Slide <slide.o.mix at gmail.com> wrote:
> > That seems a little odd. Perhaps Jeff can shed some light on it, I think
> he
> > wrote the SQLite adaptation layer.
>
> I did, but the funny code is part of the C#-sqlite library, which is a
> port of the C library to C#. (if you're feeling brave, dig through the
> code. It's ... interesting.) It looks like the author just assumed
> Windows-ish systems in all cases, and Doug has to go and break
> everything by trying to run it on Unix. :(
>
> I have no idea what that code is trying to do (context:
>
> https://github.com/IronLanguages/main/blob/master/Languages/IronPython/IronPython.SQLite/c%23sqlite/os_win_c.cs#L2646
> );
> it might be some vestigial part of SQLite that's not needed. Since //
> seems OK I'm assuming that's the case.
>
> Doug, can you open an issue? And in the meantime, is using // an
> acceptable workaround?
>
> - Jeff
>
> >
> >
> > On Mon, Feb 10, 2014 at 3:14 PM, Doug Blank <doug.blank at gmail.com>
> wrote:
> >>
> >> That must be the issue, as "//home/dblank/name.db" works:
> >>
> >> $ ipy.exe
> >> IronPython 2.9.9a0 DEBUG (2.9.0.0) on Mono 4.0.30319.1 (64-bit)
> >> Type "help", "copyright", "credits" or "license" for more information.
> >> >>> import sqlite3
> >> >>> sqlite3.connect("//home/dblank/test.db")
> >> <Connection object at 0x000000000000002B>
> >> >>>
> >>
> >> -Doug
> >>
> >>
> >>
> >> On Mon, Feb 10, 2014 at 5:12 PM, Doug Blank <doug.blank at gmail.com>
> wrote:
> >>>
> >>> After more testing, it appears that it only fails when the path begins
> >>> with a slash "/".
> >>>
> >>> I see:
> >>>
> >>> ./c#sqlite/os_win_c.cs:      if ( zConverted.StartsWith( "/" ) &&
> >>> !zConverted.StartsWith( "//"
> >>>
> >>> I'll try a couple of more things...
> >>>
> >>> -Doug
> >>>
> >>>
> >>> On Mon, Feb 10, 2014 at 9:19 AM, Doug Blank <doug.blank at gmail.com>
> wrote:
> >>>>
> >>>>
> >>>> On Mon, Feb 10, 2014 at 8:47 AM, Slide <slide.o.mix at gmail.com> wrote:
> >>>>>
> >>>>> All the connect call does is this:
> >>>>>
> >>>>> int rc = Sqlite3.sqlite3_open(database, out this.db);
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> if(rc != Sqlite3.SQLITE_OK)
> >>>>>     throw GetSqliteError(this.db, null);
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> Which makes me thing that sqlite3_open is returning an error code.
> What
> >>>>> happens if you do the same in CPython?
> >>>>
> >>>>
> >>>> No error, creates a file of length 0, and works:
> >>>>
> >>>> $ python
> >>>> Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
> >>>> [GCC 4.8.1] on linux2
> >>>> Type "help", "copyright", "credits" or "license" for more information.
> >>>> >>> import sqlite3
> >>>> >>> sqlite3.connect("/home/dblank/test.db")
> >>>> <sqlite3.Connection object at 0x7fc3c21b6118>
> >>>> >>>
> >>>>
> >>>> $ ls -al /home/dblank/test.db
> >>>> -rw-r--r-- 1 dblank dblank 0 Feb 10 09:15 /home/dblank/test.db
> >>>>
> >>>> -Doug
> >>>>
> >>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Fri, Feb 7, 2014 at 6:01 AM, Doug Blank <doug.blank at gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>>
> >>>>>> On Fri, Feb 7, 2014 at 7:47 AM, Slide <slide.o.mix at gmail.com>
> wrote:
> >>>>>>>
> >>>>>>> Do you get a specific error message?
> >>>>>>
> >>>>>>
> >>>>>> Sorry, yes:
> >>>>>>
> >>>>>> Traceback (most recent call last):
> >>>>>>   File "<string>", line 1, in <module>
> >>>>>> _sqlite3.OperationalError: unable to open database file
> >>>>>>
> >>>>>> Does this work for you? I get this error running latest ipy.exe
> (Mono
> >>>>>> 2.10, Ubuntu 13.10) and IronPython in Calico.
> >>>>>>
> >>>>>> -Doug
> >>>>>>
> >>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> On Fri, Feb 7, 2014 at 5:37 AM, Doug Blank <doug.blank at gmail.com>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Just recently discovered the sqlite3 port for IronPython, but
> having
> >>>>>>>> some basic trouble:
> >>>>>>>>
> >>>>>>>> This works fine:
> >>>>>>>>
> >>>>>>>> import sqlite3
> >>>>>>>> sqlite3.connect("test.db")
> >>>>>>>>
> >>>>>>>> but this doesn't:
> >>>>>>>>
> >>>>>>>> import sqlite3
> >>>>>>>> sqlite3.connect("/home/dblank/test.db")
> >>>>>>>>
> >>>>>>>> Any ideas?
> >>>>>>>>
> >>>>>>>> -Doug
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> Ironpython-users mailing list
> >>>>>>>> Ironpython-users at python.org
> >>>>>>>> https://mail.python.org/mailman/listinfo/ironpython-users
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Website: http://earl-of-code.com
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Website: http://earl-of-code.com
> >>>>>
> >>>>> _______________________________________________
> >>>>> Ironpython-users mailing list
> >>>>> Ironpython-users at python.org
> >>>>> https://mail.python.org/mailman/listinfo/ironpython-users
> >>>>>
> >>>>
> >>>
> >>
> >
> >
> >
> > --
> > Website: http://earl-of-code.com
> >
> > _______________________________________________
> > Ironpython-users mailing list
> > Ironpython-users at python.org
> > https://mail.python.org/mailman/listinfo/ironpython-users
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20140211/3ad8b69c/attachment.html>


More information about the Ironpython-users mailing list