On 06-Dec-2002 Vassiliy Truskov wrote:
> Thank you Martin!
> 
> I set :
> $db_handler[$iSess]->{odbc_async_exec} = 1;
> $db_handler[$iSess]->{odbc_async_type} = 'SQL_AM_STATEMENT';
> and it works for me now.
> Thanks Jeff for your help as well!
> The only one thing, if the default for async is OFF why this script works on
> Windows
> without these settings ?

Can't answer that off hand and it is harder because I don't seem to have kept a
reference to how you are doing this from non-Windows (ODBC driver, driver
manager etc). If you really want to persue it, you can turn on ODBC
tracing in your Windows ODBC administrator, run the Perl and post it back here
(or mail to me) and I'll take a look. Ideally, an ODBC trace for Windows
(working) and UNIX (no ASYNC and not working) would be best.

Martin
> 
> [EMAIL PROTECTED] wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> I may have missed some of this thread but isn't SQLCancel just used to
>> cancel:
>>
>> [1] a function running asynchronously
>> [2] a function on a statement that needs data
>> [3] a function running on the statement in another thread
>>
>> Your code doesn't seem to fit any of those.
>>
>> [1] I don't see any setting for ASYNCHRONOUS execution
>> [2] you execute is returning a result-set and does not need any data (i.e.
>> it
>>     is not parameterised with SQL_DATA_AT_EXEC.
>> [3] there are no threads.
>>
>> Any code doing:
>>
>> SQLPrepare
>> SQLExecute (select * from table)
>> SQLCancel
>>
>> is going to fail in ODBC if asynchronous execution is turned off (it is by
>> default). If asynchronous execution was enabled and the SQLExecute need to
>> take
>> a very long time then the SQLExecute call comes back with
>> SQL_STILL_EXECUTING
>> and THEN you can call SQLCancel.
>>
>> Martin
>> - --
>> Martin J. Evans
>> Easysoft Ltd, UK
>> Development
>>
>> On 04-Dec-2002 Vassiliy Truskov wrote:
>> > Hello everybody.
>> >
>> > I call SQLCancel function to cancel my query and got an error:
>> > DBD: no statement executing err=-1.
>> > It looks like statement is not defined in DBIc_ACTIVE(imp_sth).
>> > I run it on osf1 unix 4, DBI 1.31, DBD::ODBC 0.45_18.
>> > I use SDK iODBC driver manager version 3.
>> >
>> > The trace is following:
>> >
>> >     -> prepare for DBD::ODBC::db (DBI::db=HASH(0x140087e68)~0x140087dd8
>> > 'select count(*) from amount where amount > 1200' HASH(0x1402f6b60))
>> >     New DBI::st (for DBD::ODBC::st, parent=DBI::db=HASH(0x140087dd8),
>> > id=)
>> >
>> > dbih_setup_handle(DBI::st=HASH(0x140087e58)=>DBI::st=HASH(0x140089508),
>> > DBD::ODBC::st, 140087e78, Null!)
>> >     dbih_make_com(DBI::db=HASH(0x140087dd8), DBD::ODBC::st, 368) thr#0
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), Err,
>> > DBI::db=HASH(0x140087dd8)) SCALAR(0x14022f240) (already defined)
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), State,
>> > DBI::db=HASH(0x140087dd8)) SCALAR(0x14022f1e0) (already defined)
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), Errstr,
>> > DBI::db=HASH(0x140087dd8)) SCALAR(0x14022f210) (already defined)
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), Debug,
>> > DBI::db=HASH(0x140087dd8)) 0 (already defined)
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), FetchHashKeyName,
>> > DBI::db=HASH(0x140087dd8)) 'NAME' (already defined)
>> >     dbih_setup_attrib(DBI::st=HASH(0x140089508), HandleError,
>> > DBI::db=HASH(0x140087dd8)) undef (not defined)
>> >     <- prepare= DBI::st=HASH(0x140087e58) at psql_m.pl line 1036 via
>> > psql_m.pl line 865
>> >     -> execute for DBD::ODBC::st (DBI::st=HASH(0x140087e58)~0x140089508)
>> >
>> > 1   -> cancel for DBD::ODBC::st (DBI::st=HASH(0x140087e58)~0x140089508)
>> >     !! ERROR: -1 '(DBD: no statement executing err=-1)'
>> > 1   <- cancel= undef at psql_m.pl line 3540 via psql_m.pl line 1060
>> >     -> $DBI::errstr (&) FETCH from lasth=HASH
>> >     >> DBD::ODBC::st::errstr
>> >     <- $DBI::errstr= '(DBD: no statement executing err=-1)'
>> >     !! ERROR: -1 '(DBD: st_execute/SQLExecute err=-1)'
>> >
>> > Thanks in advance,
>> > Vassiliy
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.2.1 (GNU/Linux)
>>
>> iD8DBQE98GwijLvsvprkFrMRAkxbAJ0byKurxDVqsZ9ZvErEvBNCNXsKaACfQ94i
>> 8awIFTtDZhDkCZz/VX6jG4M=
>> =g7zP
>> -----END PGP SIGNATURE-----

-- 
Martin J. Evans
Easysoft Ltd, UK
Development

Reply via email to