Re: Attempt to initiate a new Adaptive Server operation with results pending
LacaK <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
Dňa 10.2.2015 o 10:35 Frediano Ziglio napísal(a): > 2015-02-10 7:43 GMT+00:00 LacaK <[email protected]>: >>>>> Hi, >>>>> I have program which uses FreeTDS db-lib.dll >>>>> Now I have changed TDS version from 7.1 to 7.3 and I start receiving >>>>> "Attempt to initiate a new Adaptive Server operation with results >>>>> pending" >>>>> in some places. >>>>> >>>>> For example, when I send this two commands: >>>>> "IF @@TRANCOUNT>0 ROLLBACK" >>>>> followed by: >>>>> "BEGIN TRANSACTION" >>>>> >>>>> I get above mentioned error. >>>>> >>>>> I attach portion of logs for 7.1 and 7.3 version. >>>>> >>>>> As you can see in both cases is returned : more_results = 1 after "IF >>>>> @@TRANCOUNT>0 ROLLBACK" >>>>> (I do not understand why?) >>>>> >>>>> But in case 7.3 is error raised afterward (in 7.1 no error) Is it >>>>> expected ? >>>>> Can you give me some explanation what is going on ? >>>>> >>>>> Thanks >>>>> -Laco. >>>>> P.S. I resend this email to maillist, because first does not arrive >>>>> there >>>>> after 3 days >>>>> >>>> This patch fix the problem. Wrote a small test to reproduce. Testing >>>> right now. >> >> Hi Frediano, >> I can confirm, that your patch fixed the problem. >> Thank you very much. >> >> Only thing, that I do not fully understand is, why in same situation (with >> same TDS = 7.3): >> "IF @@TRANCOUNT>0 ROLLBACK" followed by "BEGIN TRANSACTION" does NOT work, >> but >> "ROLLBACK" followed by "BEGIN TRANSACTION" does work ? >> >> I attach logs from both situations. >> >> Thanks >> Bye >> -Laco. >> > Hi, > is it still failing? I wrote this change (you should already have a > snapshot now) https://gitorious.org/freetds/freetds/commit/03600a47d3975f8cb43d9bc395ec7b9d39a1ec72. > It contains a test. No it is NOT failing, it works well. (As I wrote: "I can confirm, that your patch fixed the problem.") > > Basically the reply from server is in one case DONE, ENV_CHANGE, DONE > while in the other is ENV_CHANGE, DONE. I am only wondering, why: "IF @@TRANCOUNT>0 ROLLBACK" causes reply: DONE, ENV_CHANGE, DONE while "ROLLBACK" causes reply: ENV_CHANGE, DONE > Could be that FreeTDS expect > upper library to handle one DONE as a results. It seems so, but what kind of result it is ? It seems like "IF" formes one result and "ROLLBACK" second result. I am only trying understand why SQL Server replies as replies ;-) -Laco. _______________________________________________ FreeTDS mailing list [email protected] http://lists.ibiblio.org/mailman/listinfo/freetds