Sorry Neil - perhaps I should have made that clearer in the sample but
AqtorExportReader_NonIndex only a text string for one of the database fields
and goes in as is. The code is fairly straightforward....
Connection to the DB is (where $DSN is the string name of the ODBC data
source)
$dbh = DBI->connect(
"DBI:Proxy:hostname=local;port=1415;dsn=DBI:ODBC:$DSN","","",{RaiseError =>
0, AutoCommit => 1, PrintError => 0 });
Then we insert through the following code:
{
my $sql = q{
INSERT INTO tAqtorTrade
(ReaderSequenceNumber,
TradeDate,
Market,
Portfolio,
SecurityCode,
TradeType,
ExpirationDate,
ContractSize,
AqtorID,
Quantity,
Price,
TradeTime,
Source) values
};
$sql .= "('$self->{'SeqNo'}', #" . $self->{TradeDate} . "#, ";
$sql .= "'$self->{'Exchange'}', '$self->{'PortfolioCode'}', ";
$sql .= "'$self->{'UnderlyingSymbol'}', '$self->{'SecurityType'}', ";
$sql .= "#". $self->{'Expiration'}."#, ";
$sql .= "'$self->{'ContractSize'}', '$self->{'AqtorID'}', ";
$sql .= "'$self->{'Quantity'}', '$self->{'Price'}', ";
$sql .= "#" . $self->{'TradeTime'} ."#, '$self->{'ServiceName'}')";
my $sth = $AqtorExportDecoder::DBHandle->prepare( $sql );
if ( $sth )
{
my $retry = $AqtorExportDecoder::InsertRetries;
# Error in DB - let's retry here
$sth->execute;
The args to ProxyServer.pm are:
@Args = ('--logfile', 'STDERR' , '--pidfile','none','--debug','--localport',
'1415');
DBI::ProxyServer::main(@Args);
The resulting SQL statement looks fine - and works via DBI::ADO. I'm
stumped!
> -----Original Message-----
> From: Neil Lunn [SMTP:[EMAIL PROTECTED]]
> Sent: Monday, May 21, 2001 8:53 AM
> To: 'Butler, Jeff'; '[EMAIL PROTECTED]'
> Subject: RE: :Proxy with ADO/Access on WinNT
>
> Hello Jeff,
>
> Probably Still can't get mail to dbi-users but let's try any way.
>
> I really checked out your problem on just about any platform I could and I
> can't get it to break. By the way the latest release (on CPAN) on
> Win32::OLE
> will not work with a Perl less then 5.6.0 so I know you don't have that.
>
> From the trace you sent:
>
> > 08:36:20#, 'AqtorExportReader_NonIndex'),,ARRAY(0xd54380)
> ^^^^^^^^^^^^^^^
> This looks like an array ref has been bound to a placeholder. You can't do
> that. Looks like the probelm here is your code. Copy the code to the list
> for help if you have trouble sorting that out.
>
> Neil
>
> > -----Original Message-----
> > From: Butler, Jeff [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, May 21, 2001 5:42 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: :Proxy with ADO/Access on WinNT
> >
> >
> > Well, I changed DBI::ADO to DBI::ODBC and things look better
> > - it connects
> > and executes the delete statements fine. However, on an
> > insert with the
> > following SQL code an error was returned from Access - but it
> > doesn't make
> > sense (to me!) There is no count clause in the SQL. I've
> > stepped into the
> > DBI code, and the SQL looks uncorrupted right through, I've
> > switched on
> > logging in ODBC and the only difference between this and ADO is that
> > DBI::ODBC uses SQLExecute wile DBI::ADO calls SQLExecDirectW
> > to insert the
> > statement. Anybody any ideas?
> >
> >
> > SQL Code (from DBI::Proxy debug) -
> > Mon May 21 08:33:19 2001 debug, Client executes method CallMethod
> > Mon May 21 08:33:19 2001 debug, CallMethod: =>
> > DBI::ProxyServer::db=HASH(0xd495a0),prepare,
> > INSERT INTO tAqtorTrade
> > (ReaderSequenceNumber,
> > TradeDate,
> > Market,
> > Portfolio,
> > SecurityCode,
> > TradeType,
> > ExpirationDate,
> > ContractSize,
> > AqtorID,
> > Quantity,
> > Price,
> > TradeTime,
> > Source) values
> > ('4', #21-May-2001#, 'XLFF', 'SUSFSIE', 'SIE', 'F',
> > #21-May-2001#, '100', 'AQTOR20010521.4', '-10', '82.99', #21-May-2001
> > 08:36:20#, 'AqtorExportReader_NonIndex'),,ARRAY(0xd54380)
> >
> > (RESULTING ERROR:)
> >
> > Mon May 21 08:33:19 2001 err, DBD::ODBC::st execute failed:
> > [Microsoft][ODBC
> > Microsoft Access Driver]COUNT field incorrect (SQL-07001)(DBD:
> > st_execute/SQLExecute err=-1) at
> > c:\perl\site\lib/DBI/ProxyServer.pm line
> > 318, <IN> chunk 1.
> >
> >
> > Thanks,
> > Jeff Butler.
> >
> > > > -----Original Message-----
> > > > From: Neil Lunn [SMTP:[EMAIL PROTECTED]]
> > > > Sent: Friday, May 18, 2001 8:54 AM
> > > > To: 'Butler, Jeff'
> > > > Subject: RE: :Proxy with ADO/Access on WinNT
> > > >
> > > > > -----Original Message-----
> > > > > From: Butler, Jeff [mailto:[EMAIL PROTECTED]]
> > > > > Sent: Friday, May 18, 2001 5:25 PM
> > > > > To: 'Neil Lunn'
> > > > > Subject: RE: :Proxy with ADO/Access on WinNT
> > > > >
> > > > >
> > > > > At the moment, these are running in different process on the
> > > > > same machine as
> > > > > a test bed and so are referencing the same Storable
> > install. Also, I
> > > > > recently downloaded and installed this version from CPAN entry:
> > > >
> > > > Sorry, I didn't fully read your first message. This is
> > pretty unusual,
> > > > where
> > > > is the
> > > > perl build from? And how are you building your modules?
> > In either case
> > > you
> > > > should consider moving to 5.6.1 pretty quickly.
> > > >
> > > > >
> > > > > Storable RAM <../authors/id/R/RA/RAM> Storable-1.0.11.tar.gz
> > > > > <../authors/id/R/RA/RAM/Storable-1.0.11.tar.gz> 62k 15 Mar 2001
> > > > >
> > > > > Similarly, the version number (92) seems quite high. which
> > > > > may point to
> > > > > some data corruption. Perhaps it is the overload in
> > > >
> > > > Hmmn. I am still suspect this might be a malformatted 0.92.
> > > > Can you try this with DBD::ODBC to see if Win32::OLE can
> > be singled out.
> > > >
> > > > Also please copy the list, This and other information
> > will always be
> > > > useful
> > > > to someone else. I would have and intended to in my
> > original reply, but
> > > I
> > > > (Ahem!) seem to be having trouble getting through to the list
> > > > administrator
> > > > about me not being able to post.
> > > >
> > > > Neil
> > > >
> > > > > Win32::OLE::Variant
> > > > > that is not freezing/thawing properly..... Also, I am using
> > > > > perl version
> > > > > 5.004_74 built for MSWin32-x86...
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Neil Lunn [SMTP:[EMAIL PROTECTED]]
> > > > > > Sent: Friday, May 18, 2001 3:45 AM
> > > > > > To: 'Butler, Jeff'; '[EMAIL PROTECTED]'
> > > > > > Subject: RE: :Proxy with ADO/Access on WinNT
> > > > > >
> > > > > > This is in the Archives already. Your Storable versions
> > > > > differ and are not
> > > > > > compatible. This is *probably* on the Windows end and you
> > > > > are using an
> > > > > > older
> > > > > > release of Activestate Perl.
> > > > > >
> > > > > > Update the offending old copy of Storable.
> > > > > >
> > > > > > Neil.
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Butler, Jeff [mailto:[EMAIL PROTECTED]]
> > > > > > > Sent: Thursday, May 17, 2001 7:04 PM
> > > > > > > To: '[EMAIL PROTECTED]'
> > > > > > > Subject: DBI::Proxy with ADO/Access on WinNT
> > > > > > >
> > > > > > >
> > > > > > > Hi
> > > > > > >
> > > > > > > I'm trying to use the DBI::Proxy / ProxyServer modules in
> > > > > > > order to move some
> > > > > > > perl scripts to Unix, yet maintain a link to an access
> > > > > > > database. While I've
> > > > > > > managed to run the ProxyServer on NT and connect to it with
> > > > > > > Proxy.pm I'm
> > > > > > > getting errors when I attempt to use it. (using
> > DBI->trace(9))
> > > > > > >
> > > > > > > On a delete query the query executes on the
> > database but the
> > > > > > > following call
> > > > > > > stack is returned:
> > > > > > > Carp::croak(\'Cannot restore overloading on
> > SCALAR(0xd0a60c)
> > > > > > > (package Win32::O...\') called at (eval 7) line 4
> > > > > > > Storable::logcroak(\'Cannot restore overloading on
> > > > > > > SCALAR(0xd0a60c)
> > > > > > > (package Win32::O...\') called at blib\\lib\\Storable.pm
> > > > > > > (autosplit into
> > > > > > > blib\\lib\\auto/Storable/thaw.al) line 343
> > > > > > >
> > > > > > >
> > Storable::thaw(\'^E^D^B^@^@^@^F^J$DBI::ProxyServer::st=HASH(0x
> > > > > > > 168a694)^J^A0^
> > > > > > > J^A0^E^E^T^Q^SWin32::O...\') called at
> > > > > > > c:\\perl\\site\\lib/RPC/PlServer/Comm.pm line 144
> > > > > > >
> > > > > > >
> > RPC::PlServer::Comm::Read(\'RPC::PlClient=HASH(0xd6ca14)\') called
> > > > > > > at c:\\perl\\site\\lib/RPC/PlClient.pm line 112
> > > > > > > RPC::PlClient::Call(\'RPC::PlClient=HASH(0xd6ca14)\',
> > > > > > > \'CallMethod\', \'DBI::ProxyServer::db=HASH(0xd42024)\',
> > > > > \'prepare\',
> > > > > > > \'DELETE FROM tAqtorTrade where TradeDate =
> > #17-May-2001# AND
> > > > > > > Sour...\',
> > > > > > > undef, \'ARRAY(0xd099ac)\') called at (eval 16) line 5
> > > > > > >
> > > > > > >
> > RPC::PlClient::Object::DBI::ProxyServer::db::prepare(\'RPC::Pl
> > > > > > > Client::Object
> > > > > > > ::DBI::ProxyServer::db=HASH(0x1332664)\', \'DELETE FROM
> > > > > > > tAqtorTrade where
> > > > > > > TradeDate = #17-May-2001# AND Sour...\', undef,
> > > > > > > \'ARRAY(0xd099ac)\') called
> > > > > > > at c:\\perl\\site\\lib/DBD/Proxy.pm line 366
> > > > > > > eval {...} called at
> > c:\\perl\\site\\lib/DBD/Proxy.pm line
> > > > 366
> > > > > > >
> > DBD::Proxy::st::execute(\'DBI::st=HASH(0xd09994)\') called
> > > > at
> > > > > > >
> > c:/Dev/AqtorExport/Source/DTS/Aqtor/PerlModules/AqtorExportDec
> > > > > > > oder.pm line
> > > > > > > 188
> > > > > > >
> > > > > > > Then, on a second Delete statement, there are
> > errors writing
> > > > > > > to the socket
> > > > > > > and the ProxyServer dies as follows
> > > > > > >
> > > > > > > Thu May 17 09:47:28 2001 debug, Client executes
> > method CallMethod
> > > > > > > Thu May 17 09:47:28 2001 debug, CallMethod: =>
> > > > > > > DBI::ProxyServer::db=HASH(0xd42024),prepare,DELETE FROM
> > > > > > > tIntradayTrade where
> > > > > > > TradeDate = #17-May-2001# AND Source =
> > > > > > > 'AqtorExportReader_NonIndex',,ARRAY(0x168924c)
> > > > > > >
> > > > > > > Thu May 17 09:47:28 2001 debug, CallMethod: <=
> > > > > > > DBI::ProxyServer::st=HASH(0x16891a4),0,0,,,0
> > > > > > > Thu May 17 09:47:28 2001 err, Child died: Storable binary
> > > > > > > image v92.0 more
> > > > > > > recent than I am (v2.4) at blib\lib\Storable.pm
> > (autosplit into
> > > > > > > blib\lib\auto/Storable/thaw.al) line 342, <IN> chunk 1, at
> > > > > > > c:\perl\site\lib/RPC/PlServer/Comm.pm line 144
> > > > > > >
> > > > > > > Thu May 17 09:47:28 2001 debug, Child terminating.
> > > > > > >
> > > > > > > I'm especially concerned about the version error - but I
> > > > > > > cannot find other
> > > > > > > versions of Storable (1.0.11)
> > > > > > >
> > > > > > > Has anyone had like errors and found solutions to these
> > > > > or is there
> > > > > > > something wrong I'm doing. The ProxyServer is running in
> > > > > > > single-connection
> > > > > > > mode but there is only one connection on it. Ans
> > as far as I
> > > > > > > know the port
> > > > > > > I'm using should not be used elsewhere. Any hints, tips,
> > > > > > > suggestions are
> > > > > > > welcome.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Jeff Butler
> > > > > > >
> > > > > >
> > > > > >
> > > > > ______________________________________________________________
> > > > > ____________
> > > > > > Please Note :
> > > > > > Only the intended recipient is authorised to access or use
> > > > > this e-mail.
> > > > > > If
> > > > > > you are not the intended recipient,
> > > > > > please delete this e-mail and notify the sender
> > immediately. The
> > > > > > contents
> > > > > > of this e-mail are the writer's
> > > > > > opinion and are not necessarily endorsed by the Gunz
> > > > > Companies unless
> > > > > > expressly stated.
> > > > > >
> > > > > > We use virus scanning software but exclude all liability
> > > > > for viruses or
> > > > > > similar in any attachment.
> > > > > >
> > > > >
> > > >
> > > >
> > >
> > ______________________________________________________________
> > ____________
> > > > Please Note :
> > > > Only the intended recipient is authorised to access or
> > use this e-mail.
> > > > If
> > > > you are not the intended recipient,
> > > > please delete this e-mail and notify the sender immediately. The
> > > > contents
> > > > of this e-mail are the writer's
> > > > opinion and are not necessarily endorsed by the Gunz
> > Companies unless
> > > > expressly stated.
> > > >
> > > > We use virus scanning software but exclude all liability
> > for viruses or
> > > > similar in any attachment.
> > > >
> >
>
> __________________________________________________________________________
> Please Note :
> Only the intended recipient is authorised to access or use this e-mail.
> If
> you are not the intended recipient,
> please delete this e-mail and notify the sender immediately. The
> contents
> of this e-mail are the writer's
> opinion and are not necessarily endorsed by the Gunz Companies unless
> expressly stated.
>
> We use virus scanning software but exclude all liability for viruses or
> similar in any attachment.
>