Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 11 total
Thread Flushbuffers now gives "Cannot perform this operation on a closed dataset" error
Fri, Nov 16 2007 11:00 AMPermanent Link

Michael Fullerton
When a TEDBQuery is passed to a function as a TComponent, you do an
TEDBQuery(AQuery).ExecSQL and then TEDBQuery(AQuery).FlushBuffers it
causes a "Cannot perform this operation on a closed dataset" error.
Why would that be?
Fri, Nov 16 2007 4:56 PMPermanent Link

Abdulaziz Jasser
Michae,

<<When a TEDBQuery is passed to a function as a TComponent, you do an
TEDBQuery(AQuery).ExecSQL and then TEDBQuery(AQuery).FlushBuffers it
causes a "Cannot perform this operation on a closed dataset" error.
Why would that be?>>

I don't have the reply, but my feeling is that Tim is busy with some other issues.  Hope it's not some urgent family issues.
Fri, Nov 16 2007 6:13 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< When a TEDBQuery is passed to a function as a TComponent, you do an
TEDBQuery(AQuery).ExecSQL and then TEDBQuery(AQuery).FlushBuffers it causes
a "Cannot perform this operation on a closed dataset" error. Why would that
be? >>

Does the SQL that you're executing return a result set ?  And if so, then is
the TEDBQuery component still active at the point that you execute the
FlushBuffers method ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Nov 16 2007 6:14 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Abdulaziz,

<< I don't have the reply, but my feeling is that Tim is busy with some
other issues.  Hope it's not some urgent family issues. >>

Yes, I was at the hospital for about 5 hours today.  Things are up and down
with my dad, but he's still fighting.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Nov 16 2007 6:34 PMPermanent Link

Abdulaziz Jasser
Tim,

<<Yes, I was at the hospital for about 5 hours today.  Things are up and down
with my dad, but he's still fighting.>>

It happened to me once with my father.  The only thing that I can help is to ask you to "Keep close to your father"  and I am sure everybody will
understand.
Fri, Nov 16 2007 10:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Abdulaziz,

<< It happened to me once with my father.  The only thing that I can help is
to ask you to "Keep close to your father"  and I am sure everybody will
understand. >>

Thanks.  That's exactly what I'm doing.

--
Tim Young
Elevate Software
www.elevatesoft.com

Sat, Nov 17 2007 8:27 PMPermanent Link

Michael Fullerton
On Fri, 16 Nov 2007 18:13:29 -0500, "Tim Young [Elevate Software]"
<timyoung@elevatesoft.com> wrote:

>Michael,
>
><< When a TEDBQuery is passed to a function as a TComponent, you do an
>TEDBQuery(AQuery).ExecSQL and then TEDBQuery(AQuery).FlushBuffers it causes
>a "Cannot perform this operation on a closed dataset" error. Why would that
>be? >>
>
>Does the SQL that you're executing return a result set ?  And if so, then is
>the TEDBQuery component still active at the point that you execute the
>FlushBuffers method ?

No I'm just executing (INSERT or APPEND).
Mon, Nov 19 2007 2:54 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< No I'm just executing (INSERT or APPEND). >>

You can only use FlushBuffers on an active dataset, which there isn't in
your case because the INSERT doesn't return a result set.  You accomplish
the same thing, you should use this script instead:

START TRANSACTION WITH <TableName>;
INSERT INTO <TableName> .....;
COMMIT FLUSH;

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Nov 19 2007 2:56 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

Crap, wrong newsgroup - the script that I gave you is DBISAM.  What you want
to do is use the TEDBScript component and this script:

SCRIPT
BEGIN
  START TRANSACTION ON TABLES <TableName>;
  EXECUTE IMMEDIATE 'INSERT INTO <TableName> .....';
  COMMIT FLUSH;
END

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Nov 20 2007 12:54 PMPermanent Link

Michael Fullerton
On Mon, 19 Nov 2007 14:56:08 -0500, "Tim Young [Elevate Software]"
<timyoung@elevatesoft.com> wrote:

>Michael,
>
>Crap, wrong newsgroup - the script that I gave you is DBISAM.  What you want
>to do is use the TEDBScript component and this script:
>
>SCRIPT
>BEGIN
>   START TRANSACTION ON TABLES <TableName>;
>   EXECUTE IMMEDIATE 'INSERT INTO <TableName> .....';
>   COMMIT FLUSH;
>END

That's extremely inconvenient. It would be so much nicer to have a
single call like FlushBuffers for execute queries as well.
Page 1 of 2Next Page »
Jump to Page:  1 2
Image