Hello,

Mike Baranski wrote:
> 
> OK, first, that's right out of the metabase manual, with names changed to
> protect the innocent.  Second, the example won't work, it gives syntax errors
> with the MS driver on creating the test db and tables, but I fixed the DB
> part, but the tables still won't create themselves, it still gives errors.

I suppose that is because Access SQL engine does not support standard
SQL clauses like specifying default values for table fields. That is a
known limitation of Access that Metabase supports by setting the
database setup option UseDefaultValues to 0 .


> I've hacked it up a little bit, but it doesen't look like the test stuff will
> work for access.  Has anyone successfully done this, and how?  I cannot
> believe that I'm the only person who's ever stored binary data in Access,
> regardless of how bad of an idea it is...

If you set UseDefaultValues option to 0 as mentioned above it will work
fine. Usually I run the conformance tests for all types of supported
databases before each Metabase release to make sure that nothing is
broken. In fact, I use Access .mdb databases to test Metabase ODBC
driver. I can assure you that LOBs work fine with Access using Metabase.
Just mail me back if you still have difficulties.

Regards,
Manuel Lemos


> 
> > Hello,
> >
> > Mike Baranski wrote:
> > > Sorry about the previous one, that was a mistake.
> > >
> > > I have the following code to insert a blob into an access OLE object
> > > field:
> >
> > I am not sure if using SQL is the appropriate way to update such object
> > field.
> >
> > Anyway, to make this work, such object must be of ODBC type
> > ODBC_LONGVARBINARY .
> >
> > Metabase can create tables with BLOB fields properly declared. You may
> > want to try the driver test script to see what it does and how it shows
> > in access. Look in lob_test.schema to see how you can define a schema
> > with LOB fields so Metabase manager class can create one for your needs.
> >
> > > if(($prepared_query=MetabasePrepareQuery($database,"UPDATE incident_blob
> > > SET data_blob=?, description='new'")))
> > > {
> > >
> > >   $binary_lob=array(
> > >
> > >                     "Type"=>"inputfile",
> > >                     "Database"=>$database,
> > >                     "Error"=>"",
> > >                     "FileName"=>"test.php"
> > >
> > >                     );
> > >   if(($success=MetabaseCreateLOB($binary_lob,$blob)))
> > >     {
> > >
> > > MetabaseQuerySetBLOB($database,$prepared_query,1,$blob,"data_blob");
> > > if(!MetabaseExecuteQuery($database,$prepared_query))
> > >         $error=MetabaseError($database);
> > >       MetabaseDestroyLOB($blob);
> > >     }
> > >   else
> > >     {
> > >       $error=$binary_lob["Error"];
> > >       echo "Error 1 (CreateLOB): $error\n";
> > >     }
> > >   MetabaseFreePreparedQuery($database,$prepared_query);
> > >
> > > }
> > > else
> > > {
> > >   $error=MetabaseError($database);
> > >   echo "Error 2 (Prepare): $error\n";
> > > }
> > >
> > > I can connect and query the database otherwise, and it works fine.  The
> > > problem is with the Blobs, that update statement is not getting run.
> > > There's only 1 row in the table, but the description and ole object do
> > > not get updated.  If I switch the driver to use mysql as opposed to odbc,
> > > it works fine on an identical table (on linux, not windows).  Any ideas?
> >
> > Did you verify that MetabaseExecuteQuery call above succeeds? If it does
> > not succeed, what is the error message that is returned?
> >
> > Regards,
> > Manuel Lemos
> >
> > > Mike B.
> > >
> > > On Wednesday 26 December 2001 02:49 pm, Manuel Lemos wrote:
> > > > Hello,
> > > >
> > > > Mike Baranski wrote:
> > > > > Hi, I'm trying to store a binary file in an access database, I'm
> > > > > using an ole type, and I think that it's getting inserted OK.  My
> > > > > problem is that I don't know how to pull it out...  How do you select
> > > > > the stuff that's in an ole object out of the database and display it,
> > > > > a jpg, for example.  I can't even get the raw data.  I've tried
> > > > > converting it to base 16 and inserting it, but I still can't pull it
> > > > > out.  I know how to do this in mysql, so posting that won't help.  I
> > > > > need to know how to do this with access.
> > > >
> > > > If you are using ODBC, you may want to try Metabase because it supports
> > > > BLOB fields with any ODBC driver. Metabase is Open Source and is freely
> > > > available here.
> > > >
> > > > http://phpclasses.UpperDesign.com/browse.html/package/20
> > > >
> > > > Regards,
> > > > Manuel Lemos
> 
> --
> *********************************
> * Mike Baranski                 *
> * Security Managment Consulting *
> * 919-788-9200 Phone            *
> * 919-510-0037 Fax              *
> * [EMAIL PROTECTED]              *
> *********************************

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to