!!! I believe it's a major issue (may consider as a bug) in noncached mode, which could lead to a major data loss in the applications , any way as you said "time consuming task" !!.
best regards
Search found 47 matches
- Mon 30 Oct 2017 16:14
- Forum: dotConnect for Oracle
- Topic: DataLink.EndEdit() behavior, again
- Replies: 4
- Views: 1595
- Thu 26 Oct 2017 09:12
- Forum: dotConnect for Oracle
- Topic: DataLink.EndEdit() behavior, again
- Replies: 4
- Views: 1595
DataLink.EndEdit() behavior, again
Dear Devart;
refer to the old post viewtopic.php?f=1&t=34860 , i have retest the case on the new version 9.4, but it still the same !!
any time could this issue be solved, or at least what the workaround not to lose the data
best regards,
refer to the old post viewtopic.php?f=1&t=34860 , i have retest the case on the new version 9.4, but it still the same !!
any time could this issue be solved, or at least what the workaround not to lose the data
best regards,
- Mon 23 Jan 2017 09:14
- Forum: dotConnect for Oracle
- Topic: DataLink.EndEdit() behavior
- Replies: 2
- Views: 1245
DataLink.EndEdit() behavior
Dear Devart;
Using the Depts table as test case with the following structure:
Building a simple WinForm with DataTable(CachedUpdates = false), DataLink, and four Textedits bonded to the Depts fields, and follow next steps:
1. Run the WinForm, open DataTable. Textedits will show the current record.
2. Edit Name, and Dept_Desc with new values.
3. Edit OID with value > 100, and execute DataLink.EndEdit() method, an exception is raised because of dept_ck constraint.
4. Re-edit OID with value < 100 and re-execute DataLink.EndEdit() method, no exception is raised, but the value of the Name, and Dept_Desc is reverted to the original values !!!!!!!!!, so I losses the edits done before the Exception is raised !!!!!!!!!!!!
How can I solve such an issue.
OraConnect: 9.1.131
Dev Lang: C#
Dev IDE: Visual Studio 2012
Database: Oracle 12c
Using the Depts table as test case with the following structure:
Code: Select all
create table depts( oid number(8) not null, name varchar2(200), dept_desc varchar2(200), notes varchar2(200) );
alter table depts add constraint dept_pk primary key (oid);
alter table depts add constraint dept_ck check (oid < 100);
Building a simple WinForm with DataTable(CachedUpdates = false), DataLink, and four Textedits bonded to the Depts fields, and follow next steps:
1. Run the WinForm, open DataTable. Textedits will show the current record.
2. Edit Name, and Dept_Desc with new values.
3. Edit OID with value > 100, and execute DataLink.EndEdit() method, an exception is raised because of dept_ck constraint.
4. Re-edit OID with value < 100 and re-execute DataLink.EndEdit() method, no exception is raised, but the value of the Name, and Dept_Desc is reverted to the original values !!!!!!!!!, so I losses the edits done before the Exception is raised !!!!!!!!!!!!
How can I solve such an issue.
OraConnect: 9.1.131
Dev Lang: C#
Dev IDE: Visual Studio 2012
Database: Oracle 12c
- Wed 17 Feb 2016 06:20
- Forum: Oracle Data Access Components
- Topic: Readonly Issue
- Replies: 1
- Views: 1249
Readonly Issue
Dear Devart;
Any updates regarding the TOraTable Readonly issue that mentioned in http://forums.devart.com/viewtopic.php?f=5&t=33214
Best Regards
Any updates regarding the TOraTable Readonly issue that mentioned in http://forums.devart.com/viewtopic.php?f=5&t=33214
Best Regards
- Sat 13 Feb 2016 15:21
- Forum: Oracle Data Access Components
- Topic: Set Readonly := True close the Dataset ??
- Replies: 1
- Views: 1476
Set Readonly := True close the Dataset ??
Dear Devart,
in testing process of ODAC 9.6.22, we faced a new behavior !!, after set OraTable.Readonly to true, it closing the OraTable Object ????
[Update : in case OraTable have KeyFields set to value, no close action is taken, when KeyFields is empty the OraTable is closed after turn Readonly to true]
IDE : Delphi 2007.
in testing process of ODAC 9.6.22, we faced a new behavior !!, after set OraTable.Readonly to true, it closing the OraTable Object ????
[Update : in case OraTable have KeyFields set to value, no close action is taken, when KeyFields is empty the OraTable is closed after turn Readonly to true]
IDE : Delphi 2007.
- Mon 18 Jan 2016 15:35
- Forum: Universal Data Access Components
- Topic: Refer to "UniDAC Migration Issues"
- Replies: 1
- Views: 788
Refer to "UniDAC Migration Issues"
Refer to Issues listed in the following post,
http://forums.devart.com/viewtopic.php?f=28&t=29724
any Updates regards Points 1, and 4 ?? [ Points 2, 3 is done ]
Best Regards,
http://forums.devart.com/viewtopic.php?f=28&t=29724
any Updates regards Points 1, and 4 ?? [ Points 2, 3 is done ]
Best Regards,
- Tue 17 Jun 2014 05:19
- Forum: Oracle Data Access Components
- Topic: UpdatesPending in NonCachedMode
- Replies: 5
- Views: 1072
Re: UpdatesPending in NonCachedMode
Dear Alex;
Hope to add such a feature in the near future, I know it's a standard behavior of DBAccess component but we are using Devart components to give as much as possible features, thanks in advance.
Best Regards,
Ahmed Hijazi P. Eng
Hope to add such a feature in the near future, I know it's a standard behavior of DBAccess component but we are using Devart components to give as much as possible features, thanks in advance.
Best Regards,
Ahmed Hijazi P. Eng
- Mon 16 Jun 2014 10:18
- Forum: Oracle Data Access Components
- Topic: UpdatesPending in NonCachedMode
- Replies: 5
- Views: 1072
Re: UpdatesPending in NonCachedMode
Your answer is about the current record in a Dataset, I asked about the Dataset, In case I Edit a record and then Post, Insert a new record and then Post and move to the third record (posts done by GUI when moving between records), at that case Dataset have updates i can not check unless i used custom code, is their any method or property could told me about update like UpdatesPending in NonCachedMode, and if not is their any intention to add in the near future??
Best Regards,
Best Regards,
- Sat 14 Jun 2014 10:34
- Forum: SQL Server Data Access Components
- Topic: Similar to sys.dbms_transaction.step_id in Oralce
- Replies: 1
- Views: 1271
Similar to sys.dbms_transaction.step_id in Oralce
Dear Devart;
Is their a function in SQL Server similar to Oracle "sys.dbms_transaction.step_id", which could tell us that thier bending changes in current transaction.
Best Regards,
Is their a function in SQL Server similar to Oracle "sys.dbms_transaction.step_id", which could tell us that thier bending changes in current transaction.
Best Regards,
- Sat 14 Jun 2014 10:22
- Forum: Oracle Data Access Components
- Topic: UpdatesPending in NonCachedMode
- Replies: 5
- Views: 1072
UpdatesPending in NonCachedMode
Dear Devart,
Is there a similar to UpdatesPending property in CachedMode := False???, that could told us if their ant updates in the Dataset (delete, update, insert)
Best Regards,
Is there a similar to UpdatesPending property in CachedMode := False???, that could told us if their ant updates in the Dataset (delete, update, insert)
Best Regards,
- Tue 03 Jun 2014 07:34
- Forum: Universal Data Access Components
- Topic: UniDAC Migration Issues
- Replies: 1
- Views: 1024
UniDAC Migration Issues
Dear UniDAC Support;
Can I have a confirmation if the issues I have mentioned in the following posts will be fixed in the next build of UniDAC
1- http://forums.devart.com/viewtopic.php?f=28&t=29650
Note:
I hope you fix the issue in transaction management part, main transaction have to become active (InTransaction = true) when execute DML statments in ExecuteSQL method or call insert mothed of TUniTable without the call of explicit StartTransaction. (Update and delete statments activate the transaction but insert didnot !!!!!!! in TUniTable).
2- http://forums.devart.com/viewtopic.php?f=28&t=29649
3- http://forums.devart.com/viewtopic.php?f=28&t=29661
4- AutoCommit is hidden in UniTable and UniQuery, it must be published !!.
finally, what is the expected date of the next build??
Best Regards,
Can I have a confirmation if the issues I have mentioned in the following posts will be fixed in the next build of UniDAC
1- http://forums.devart.com/viewtopic.php?f=28&t=29650
Note:
I hope you fix the issue in transaction management part, main transaction have to become active (InTransaction = true) when execute DML statments in ExecuteSQL method or call insert mothed of TUniTable without the call of explicit StartTransaction. (Update and delete statments activate the transaction but insert didnot !!!!!!! in TUniTable).
2- http://forums.devart.com/viewtopic.php?f=28&t=29649
3- http://forums.devart.com/viewtopic.php?f=28&t=29661
4- AutoCommit is hidden in UniTable and UniQuery, it must be published !!.
finally, what is the expected date of the next build??
Best Regards,
- Wed 28 May 2014 16:28
- Forum: Universal Data Access Components
- Topic: From ODAC to UniDAC (2)
- Replies: 2
- Views: 1009
From ODAC to UniDAC (2)
Dear Devart;
The following code is executed in ODAC, but when using UniDAC it did not, it seems that UniDAC did not understand result parameter as a default ????, how can using the same code with UniDAC
in ODAC
in UniDAC
The following code is executed in ODAC, but when using UniDAC it did not, it seems that UniDAC did not understand result parameter as a default ????, how can using the same code with UniDAC
Code: Select all
vCount := conn.ExecSQL('begin select count(*) into :result from A; end;', [0]);
in ODAC
Code: Select all
function TOraSQL.FindResultParam: TDAParam;
begin
Result := Params.FindParam('Result');
end;
Code: Select all
function TUniSQL.FindResultParam: TDAParam;
var
i: integer;
begin
Result := nil;
for i := 0 to Params.Count - 1 do
if Params[i].ParamType = ptResult then
Result := Params[i];
if Result <> nil then
if Result.DataType = ftUnknown then
Result.DataType := ftInteger;
end;
- Tue 27 May 2014 17:55
- Forum: Universal Data Access Components
- Topic: From ODAC to UniDAC
- Replies: 1
- Views: 1214
From ODAC to UniDAC
Dear Devart;
1- The following code run perfect in ODAC, but when using the UniDAC (5.3.8 ) after calling the commit method, exception is raised "can not perform operation inactive transaction" ???
2- A full description of the issue was discussed in previous post in the ODAC form http://forums.devart.com/viewtopic.php?f=5&t=18542 , when try the same code in UniDAC it did not work as expected ????
What you will find after execute the code, that the behavior of UniTable different than the UniQuery,
table "A" will have the record with ID=4 even if we Rollback the transaction (BUG).
table "B" will NOT have the record with ID=4 and that is a correct behavior.
I believe the must have the same behavior, they have to create a one Transaction for all DML operations, does it ???
Note that I have not use StartTransction methods.
Best Regards,
Ahmed Hijazi P. Eng
1- The following code run perfect in ODAC, but when using the UniDAC (5.3.8 ) after calling the commit method, exception is raised "can not perform operation inactive transaction" ???
Code: Select all
snMain := TUniConnection.Create(self);
with snMain do begin
SpecificOptions.Add('Oracle.Direct=True');
SpecificOptions.Add('Oracle.ClientIdentifier=Admin');
Username := 'dblock';
Password := 'dblock';
Server := 'serv::db';
AutoCommit := False;
ProviderName := 'Oracle';
Connect;
ExecSQL('create table A (ID INTEGER not null, NAME VARCHAR2(250) not null, CONSTRAINT A_PK PRIMARY KEY (ID))', []);
ExecSQL('create table B (ID INTEGER not null, NAME VARCHAR2(250) not null, CONSTRAINT B_PK PRIMARY KEY (ID))', []);
ExecSQL('insert into A values(1, ''Atest 1'')', []);
ExecSQL('insert into B values(1, ''Btest 1'')', []);
Commit;
end;
2- A full description of the issue was discussed in previous post in the ODAC form http://forums.devart.com/viewtopic.php?f=5&t=18542 , when try the same code in UniDAC it did not work as expected ????
Code: Select all
var
snMain : TUniConnection;
qryTest : TUniQuery;
tblTest : TUniTable;
begin
snMain := TUniConnection.Create(self);
with snMain do begin
SpecificOptions.Add('Oracle.Direct=True');
Username := 'dblock';
Password := 'dblock';
Server := 'ORA11g64bit::dbx';
AutoCommit := False;
Connect;
try
ExecSQL('drop table A', []);
ExecSQL('drop table B', []);
except
end;
ExecSQL('create table A (ID INTEGER not null, NAME VARCHAR2(250) not null, CONSTRAINT A_PK PRIMARY KEY (ID))', []);
ExecSQL('create table B (ID INTEGER not null, NAME VARCHAR2(250) not null, CONSTRAINT B_PK PRIMARY KEY (ID))', []);
ExecSQL('insert into A values(1, ''test 1'')', []);
ExecSQL('insert into A values(2, ''test 2'')', []);
ExecSQL('insert into A values(3, ''test 3'')', []);
ExecSQL('insert into B values(1, ''test 1'')', []);
ExecSQL('insert into B values(2, ''test 2'')', []);
ExecSQL('insert into B values(3, ''test 3'')', []);
snMain.ExecSQL('commit', []); // used instead of commit because it raise an exception of inactive transaction
end;
tblTest := TUniTable.Create(self);
with tblTest do begin
Connection:= snMain;
TableName := 'A';
KeyFields := 'ID';
Open;
Insert; FieldByName('ID').AsInteger := 4; FieldByName('Name').AsString := 'test 4'; Post;
Locate('ID', 1, []);
Edit; FieldByName('Name').AsString := 'new value 1'; Post;
Locate('ID', 2, []); Delete;
Next;
end;
snMain.ExecSQL('Rollback', []); // used instead of snMain.Rollback because it raise an exception of inactive transaction
qryTest := TUniQuery.Create(self);
with qryTest do begin
Connection:= snMain;
SQL.Text := 'select * from B';
KeyFields := 'ID';
Open;
Insert; FieldByName('ID').AsInteger := 4; FieldByName('Name').AsString := 'test 4'; Post;
Locate('ID', 1, []);
Edit; FieldByName('Name').AsString := 'new value 1'; Post;
Locate('ID', 2, []);
Delete;
Next;
end;
snMain.ExecSQL('Rollback', []); // used instead of snMain.Rollback because it raise an exception of inactive transaction
end;
What you will find after execute the code, that the behavior of UniTable different than the UniQuery,
table "A" will have the record with ID=4 even if we Rollback the transaction (BUG).
table "B" will NOT have the record with ID=4 and that is a correct behavior.
I believe the must have the same behavior, they have to create a one Transaction for all DML operations, does it ???
Note that I have not use StartTransction methods.
Best Regards,
Ahmed Hijazi P. Eng
- Tue 27 May 2014 16:44
- Forum: Universal Data Access Components
- Topic: RowsAffected from TuniConnection.ExecSQL
- Replies: 1
- Views: 1074
RowsAffected from TuniConnection.ExecSQL
Dear Devart;
How I can get RowsAffected value after calling Connection.ExecSQL('some update statement', []);
in TOraSession their was Session.sql.RowsAffected, what is the equivalent??
Best Regards,
Ahmed Hijazi P. Eng.
How I can get RowsAffected value after calling Connection.ExecSQL('some update statement', []);
in TOraSession their was Session.sql.RowsAffected, what is the equivalent??
Best Regards,
Ahmed Hijazi P. Eng.
- Tue 30 Apr 2013 12:30
- Forum: Oracle Data Access Components
- Topic: ConnectionTimeout Did not work.
- Replies: 1
- Views: 927
ConnectionTimeout Did not work.
Dear Devart,
How I can implement a connection timeout in Direct mode,
when i try to connect to a remote server (through the internet) i want the timeout to be 5 seconds, when i'm testing the connection, all the time it take 21.00 seconds to replay with the timeout.
Component versions,
- Delphi IDE 2007
- ODAC 6.90.0.57
- Oracle 11g
Best Regards,
Ahmed Hijazi
How I can implement a connection timeout in Direct mode,
when i try to connect to a remote server (through the internet) i want the timeout to be 5 seconds, when i'm testing the connection, all the time it take 21.00 seconds to replay with the timeout.
Component versions,
- Delphi IDE 2007
- ODAC 6.90.0.57
- Oracle 11g
Best Regards,
Ahmed Hijazi