 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Mike Kabue Guest
|
Posted: Tue Apr 20, 2004 9:55 am Post subject: Timeout Expired |
|
|
Hi,
I have developed a small Vehicle Workshop Management system with Delphi 7,
and running on MS SQL 2000 server.
There are a number of users who need to access the app at the same time to
update different modules.
On clicking the App executable, a Timeout Expired error is generated. I
think this has something to do with running transactions. Is there anyone
who can help in the best way to set transactions (At what point do i have to
start a transaction and commit it).
I am new to MS SQL 2000 Server!!!
Thanks
Mike
|
|
| Back to top |
|
 |
Kevin Frevert Guest
|
Posted: Tue Apr 20, 2004 10:32 am Post subject: Re: Timeout Expired |
|
|
Mike,
Actually you don't have to explicitly start/commit transactions, the driver
can take care of that for you (implicit transactions is the default
behavior).
You didn't provide any information about the application (BDE? ADO? What is
the app doing to cause the error? , etc)
Good place to start (article is BDE specific, but concepts still apply)...
http://bdn.borland.com/article/0,1410,28160,00.html
Other good articles worth mentioning...
http://www.hower.org/Kudzu/Articles/DBDesign/index.html
http://bdn.borland.com/article/0,1410,27790,00.html
Good luck,
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote
| Quote: | Hi,
I have developed a small Vehicle Workshop Management system with Delphi 7,
and running on MS SQL 2000 server.
There are a number of users who need to access the app at the same time to
update different modules.
On clicking the App executable, a Timeout Expired error is generated. I
think this has something to do with running transactions. Is there anyone
who can help in the best way to set transactions (At what point do i have
to
start a transaction and commit it).
I am new to MS SQL 2000 Server!!!
Thanks
Mike
|
|
|
| Back to top |
|
 |
Mike Kabue Guest
|
Posted: Tue Apr 20, 2004 10:57 am Post subject: Re: Timeout Expired |
|
|
Kevin,
The App use ADO to connect.
Mike
"Kevin Frevert" <Work (AT) drinkingcoffee (DOT) com> wrote
| Quote: | Mike,
Actually you don't have to explicitly start/commit transactions, the
driver
can take care of that for you (implicit transactions is the default
behavior).
You didn't provide any information about the application (BDE? ADO? What
is
the app doing to cause the error? , etc)
Good place to start (article is BDE specific, but concepts still apply)...
http://bdn.borland.com/article/0,1410,28160,00.html
Other good articles worth mentioning...
http://www.hower.org/Kudzu/Articles/DBDesign/index.html
http://bdn.borland.com/article/0,1410,27790,00.html
Good luck,
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote in message
news:4084f579 (AT) newsgroups (DOT) borland.com...
Hi,
I have developed a small Vehicle Workshop Management system with Delphi
7,
and running on MS SQL 2000 server.
There are a number of users who need to access the app at the same time
to
update different modules.
On clicking the App executable, a Timeout Expired error is generated. I
think this has something to do with running transactions. Is there
anyone
who can help in the best way to set transactions (At what point do i
have
to
start a transaction and commit it).
I am new to MS SQL 2000 Server!!!
Thanks
Mike
|
|
|
| Back to top |
|
 |
Kevin Frevert Guest
|
Posted: Tue Apr 20, 2004 12:11 pm Post subject: Re: Timeout Expired |
|
|
Mike,
Good choice What components are you using (TADODataSets, TADOCommand,
etc)? Are there any blocks (Enterprise Manager->Your
server->Management->Current Activity)?
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote
| Quote: | Kevin,
The App use ADO to connect.
Mike
|
|
|
| Back to top |
|
 |
Mike Kabue Guest
|
Posted: Tue Apr 20, 2004 1:31 pm Post subject: Re: Timeout Expired |
|
|
Kevin,
I am using TADOQuery only.
There are no blocks. The only thing I have done is to start a transaction
when a user clicks on a button or tries to create a new record in the
database. A number of Tables need to be updated in between. I want the app
to only commit these updates if all Tables (4 in Number) have been updated
successfuly.
Here is how it happens breifly.
To update a parts requisition:
1. The user enter a requisition number-> the system checks if the
requisition has already been inputed earlier
a.) If not yet, a transaction is started, and a new entry is inserted into
the WKrequisition table.
b.) The user peoceeds to input the line items (required parts etc) which
reads the part numbers from a WKStocks Table and Updates the Line Table
WKItems.
c.)After all the Line Table items have been input the user can choose to
save the whole transaction - In this case, the Line Table is updated with
the Requision number and transaction commited
or
d.)The user clicks on a cancel button and the whole transaction (Requisition
and Line Items) are dropped and the transaction is rolled back.
e.) The User can then choose to start the whole process once again.
Lengthy!!, but this is a brief of what the app operates in one of the
modules.
Mike
"Kevin Frevert" <Work (AT) drinkingcoffee (DOT) com> wrote
| Quote: | Mike,
Good choice What components are you using (TADODataSets,
TADOCommand,
etc)? Are there any blocks (Enterprise Manager->Your
server->Management->Current Activity)?
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote in message
news:40850407 (AT) newsgroups (DOT) borland.com...
Kevin,
The App use ADO to connect.
Mike
|
|
|
| Back to top |
|
 |
Kevin Frevert Guest
|
Posted: Tue Apr 20, 2004 1:57 pm Post subject: Re: Timeout Expired |
|
|
Mike,
Ideally, keep the transactions on the server (triggers, stored procs) and
only on the most extreme exceptions allow explicit transactions to be
handled by end-users (ex. waiting for them to click a button).
Take a look at using TClientDataSets
http://community.borland.com/article/0,1410,22571,00.html
http://community.borland.com/article/0,1410,20847,00.html
or use ADO in batch update mode. Also for new development, use TADODataSets
instead of TADOQuery. TADOQuerys are really meant for backward
compatibility/conversion of (BDE) TQuerys. TADODataSets and TADOCommands
are "closer" to the OLE-DB layer (ADO) than TADOQuery and TADOStoredProc.
In a batch mode (either TADODataSet->TDataSetProvider->TClientDataSet or
TADODataSet.LockType=ltBatchOptimistic) you can apply changes to the
database on the Save button click and do nothing (close the dataset,
refresh, etc) on the Cancel (letting ADO commit/rollback changes
implicitly).
Good luck,
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote
| Quote: | Kevin,
I am using TADOQuery only.
|
|
|
| Back to top |
|
 |
Mike Kabue Guest
|
Posted: Tue Apr 20, 2004 2:05 pm Post subject: Re: Timeout Expired |
|
|
Kevin,
Thanks, will try it out and let you know how it works out.
Mike
"Kevin Frevert" <Work (AT) drinkingcoffee (DOT) com> wrote
| Quote: | Mike,
Ideally, keep the transactions on the server (triggers, stored procs)
and
only on the most extreme exceptions allow explicit transactions to be
handled by end-users (ex. waiting for them to click a button).
Take a look at using TClientDataSets
http://community.borland.com/article/0,1410,22571,00.html
http://community.borland.com/article/0,1410,20847,00.html
or use ADO in batch update mode. Also for new development, use
TADODataSets
instead of TADOQuery. TADOQuerys are really meant for backward
compatibility/conversion of (BDE) TQuerys. TADODataSets and TADOCommands
are "closer" to the OLE-DB layer (ADO) than TADOQuery and TADOStoredProc.
In a batch mode (either TADODataSet->TDataSetProvider->TClientDataSet or
TADODataSet.LockType=ltBatchOptimistic) you can apply changes to the
database on the Save button click and do nothing (close the dataset,
refresh, etc) on the Cancel (letting ADO commit/rollback changes
implicitly).
Good luck,
krf
"Mike Kabue" <myqro (AT) yahoo (DOT) com> wrote in message
news:40852803 (AT) newsgroups (DOT) borland.com...
Kevin,
I am using TADOQuery only.
|
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|