Search found 26 matches

by RNOVAK
Fri 11 Oct 2019 00:50
Forum: SecureBridge
Topic: Only one Sugestion HTTP 3.0 (HTTP-over-QUIC)
Replies: 1
Views: 2528

Only one Sugestion HTTP 3.0 (HTTP-over-QUIC)

I use connections over internet to MySQL with SSL, using TCP/IP.
I was thinking about to speed up returns from database. Implementation of HTTP 3.0 protocol to do this can be a good thing, one tunel HTTP 3.0.
Secure bridge suports HTTP transport between server and client, so my sugestion implementation to supports HTTP 3.0 in the future.
(Here is some good documentation: https://quicwg.org/base-drafts/draft-ie ... .section.3)

Roberto Novakosky
by RNOVAK
Mon 11 Aug 2014 18:49
Forum: MySQL Data Access Components
Topic: TDataSetProvider X TMyQuery
Replies: 2
Views: 1641

Re: TDataSetProvider X TMyQuery

Thank You !
Works fine
by RNOVAK
Thu 07 Aug 2014 16:56
Forum: MySQL Data Access Components
Topic: TDataSetProvider X TMyQuery
Replies: 2
Views: 1641

TDataSetProvider X TMyQuery

(My question is similar to question 2 on http://forums.devart.com/viewtopic.php?t=21443)

I have TClientDataSet + TDataSetProvider + TMyQuery

I apply Changes as ...

Code: Select all

  MyClientDataSet1.Open; ...
  MyClientDataSet1.Delete; ...
  ...
  MyConn.StartTransaction;
    MyDataSetProvider1.ApplyUpdates(MyClientDataSet1.Delta, 0, myTransactionErrorCount);
    ...
    here I want to know RowsAffected but not working... 
    (if I have at least 1 deleted record so must shows 1 record affected)
    ...
  MyConn.Commit and MergeChangeLog to all ClientDataSets or Rollback all;
To intercept and see RowsAffected I am doing:
on MyDataSetProvider1.AfterApplyUpdates, p example:

Code: Select all

ShowMessage(IntToStr(TMyQuery((Sender as TDataSetProvider).DataSet).RowsAffected));
but RowsAffected returning '-1' always.

How to use this way with TMyQuery ?

Well, is possible to do this way (with 'SELECT ROW_COUNT')
...

Code: Select all

  MyConn.StartTransaction;
    MyDataSetProvider1.ApplyUpdates(MyClientDataSet1.Delta, 0, myTransactionErrorCount);
      qu.SQL.Text := 'SELECT ROW_COUNT();';
      qu.Open;
      myAffectedRows := qu.Fields[0].AsString;
      qu.Close;
    ...
  MyConn.Commit and MergeChangeLog to all ClientDataSets or Rollback all;
by RNOVAK
Wed 16 Apr 2014 16:26
Forum: MySQL Data Access Components
Topic: About DATETIME with fractional seconds
Replies: 1
Views: 1218

About DATETIME with fractional seconds

About new support to Fractional seconds in Time Values of MySQL 5.6/5.7

Since MySQL 5.6.4, there is support to DATETIME as '2014-02-02 10:05:45.123456'.

Example:
CREATE TABLE `mytest` (
`dt_hr_id` DATETIME(3) NOT NULL,
PRIMARY KEY (`dt_hr_id`)
);

Using the MyDAC... 'SELECT * from mytest;'
...
if DateTime '2014-02-02 10:05:45.123'.
ShowMessage(FormatDateTime('hh:nn:ss.zzz' ,MyQuery.Fields[0].AsDateTime));
shows '10:05:45.000' ...

I know about some limitations of Delphi, but above, why it shows '.000' ?
Is there a way to use it with MyDAC without use of MICROSECOND() of MySQL ?

Roberto
by RNOVAK
Fri 07 Feb 2014 12:32
Forum: MySQL Data Access Components
Topic: IsolationLevel problem to set ?
Replies: 1
Views: 1303

IsolationLevel problem to set ?

Hello

If I have a TMyConnection, and change the IsolationLevel ...

myConn.IsolationLevel := ilReadUnCommitted;

//test to verify on SGDB
qu := TMyQuery.Create(nil);
qu.Connection := myConn;
qu.SQL.Text := 'show variables like ''tx_isolation'';';
qu.Open;
ShowMessage(qu.Fields[1].AsString); <<<-- detection of problem
qu.Close;
//----

myConn.IsolationLevel := ilReadUnCommitted; isn't working at level of database, only on object myConn, the test shows p example 'REPEATABLE-READ'
only if I do manually 'SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;'
than shows 'READ-UNCOMMITED'
or after one first call to myConn.StartTransaction; so works fine

To correct this for a while in my codes, I am doing this sequence
1 - myConn.IsolationLevel := theIsolationLevelIWant;
2 - SQL Manually 'SET SESSION TRANSACTION ISOLATION LEVEL 'theIsolationLevelIWant';'

Well, I think myConn.IsolationLevel := theIsolationLevelIWant must work at SGDB in time of set property on object myConn if myConn.Active. Is it the right ?

Roberto Novakosky

Obs.: with MyDAC Version 8.2.5 on Delphi 2007 (MySQL 5.1 and others)
by RNOVAK
Fri 02 Aug 2013 14:06
Forum: MySQL Data Access Components
Topic: C++ Builder 2007 - Unable to open file MYDACVCL105.OBJ
Replies: 3
Views: 1662

Re: C++ Builder 2007 - Unable to open file MYDACVCL105.OBJ

Resolved

I did a new project and added all files (as my old project), so the problem finished. I dont know what was the cause of problem, maybe a corrupted file but it is Ok now and this problem occurred only with one of my projects.

Roberto
by RNOVAK
Mon 29 Jul 2013 15:14
Forum: MySQL Data Access Components
Topic: Record was changed by user ...
Replies: 4
Views: 22674

Re: Record was changed by user ...

Hello smww

See on MySQL database if the field has trigger or default value when your app sets to null. Maybe one trigger changes the field or the default value rewrites your null value.

Roberto
by RNOVAK
Mon 29 Jul 2013 14:32
Forum: MySQL Data Access Components
Topic: TDatasource or TMyDataSource
Replies: 5
Views: 1738

Re: TDatasource or TMyDataSource

I generally prefer

TMyConnection -> TMyQuery -> TDatasetProvider -> TClientdataset -> TDatasource
(TMYQuery always uniDirectional this way)

because I can change (TMyConnection -> TMyQuery) and dont need to modify (TDatasetProvider -> TClientdataset -> TDatasource) in code

because too, compatibility to access difeerent databases through different tecnologies (DBGo, DbExpress...) or because working 3 tiers

I use this form too to work with transactions, you can use:
..StartTransaction
myDataSetProvider.ApplyUpdates(myclientDataSet.Delta, 0, TransactionErrorCount);
... (not directly query or clientdataset.Aplly, but trhough DataSetProvider)
other dataSetProviders.ApplyAUdates...
... commit or rollback happens
...
so only if commit OK to all dataSetrProviders.ApplyUpdates I do myclientDataSets.MergeChangeLog
otherwise I maintain the original change log on ClientDataSets because rollback all

If I do directly myQuery.ApplyUpdates I cant keep change log this way.

I think
if I need transactions to multiple clientDataSets at the same time,
or if I need change tecnology in code
is better to me
TMyConnection -> TMyQuery -> TDatasetProvider -> TClientdataset -> TDatasource

If I need only access MySQL and I dont need transactions or ChangeLogs so the performance of TMyConnection -> TMyQuery -> TMyDataSource is better.


Roberto
by RNOVAK
Mon 29 Jul 2013 13:26
Forum: MySQL Data Access Components
Topic: MyDac or UniDac with TMySQLUniProvider
Replies: 4
Views: 1638

Re: MyDac or UniDac with TMySQLUniProvider

I would like to know too.

Is there diferences between MyDAC and UniDAC to access MySQL ? Which is better or are equal in performance ?
by RNOVAK
Mon 29 Jul 2013 13:11
Forum: MySQL Data Access Components
Topic: Performance & low memory - Opinion
Replies: 2
Views: 1358

Re: Performance & low memory - Opinion

The pooling is rigth.

Dont forget: if you dont need anymore one connection, do disconect, so connection returns to pool (when pooling is true) and you can to reuse it later.

Your TMyQuery.Create has a problem, maybe is only your copy of piece of code...
In your code you created more than one TQuery object:

"I mostly use TMyQuery. This is the way I use them :

daSQLQuery:= TMyQuery.Create(self); << (dont need this)

try
daSQLQuery.Connection:= GetDatabaseConnection(databaseName);
daSQLQuery:= TMyQuery.Create(self); << (this line must be before "daSQLQuery.Connection:= GetDatabaseConnection(databaseName);")
daSQLQuery.FetchAll:= false;
...
"

You got 2 connections
daSQLQuery.Connection:= GetDatabaseConnection(databaseName);
daSQLQuery.Connection:= GetDatabaseConnection(zRemoteCommand.getDatabaseName);
but freed only one in
daSQLQuery.Connection.Disconnect;

I think you copied lines from diferent piece of logic codes because the logic must be:
daSQLQuery.Connection:= GetDatabaseConnection(databaseName);
.. you use the connection
.. so you do disconnect to return it to the pool
other connection:
daSQLQuery.Connection:= GetDatabaseConnection(zRemoteCommand.getDatabaseName);
.. you use the connection
.. so you do disconnect to return it to the pool
...
this sequence is right:
try
daSQLQuery:= TMyQuery.Create(self);
daSQLQuery.Connection:= GetDatabaseConnection(databaseName);
daSQLQuery.FetchAll:= false;
daSQLQuery.FetchRows:= 16;
daSQLQuery.Options.FlatBuffers:= true;
daSQLQuery.Options.StrictUpdate:= false;
daSQLQuery.ReadOnly:= true;
daSQLQuery.UniDirectional:= true;
if (not(daSQLQuery.Eof)) then
...

finally
daSQLQuery.Close;
daSQLQuery.Connection.Close;
daSQLQuery.Connection.Disconnect;
FreeAndNil(daSQLQuery);
end;

...other try
try
daSQLQuery:= TMyQuery.Create(self);
daSQLQuery.Connection:= GetDatabaseConnection(zRemoteCommand.getDatabaseName);
daSQLQuery.SQL.Text:= fdUTF8ToString(sSQL);
daSQLQuery.Execute;
daSQLQuery.First;

if (not(daSQLQuery.Eof)) then
...

finally
daSQLQuery.Close;
daSQLQuery.Connection.Close;
daSQLQuery.Connection.Disconnect;

FreeAndNil(daSQLQuery);
end;

Dont forget to see max_connectios of myini file from MySQL too. Must support your necessary connections.

Roberto
by RNOVAK
Fri 26 Jul 2013 19:50
Forum: MySQL Data Access Components
Topic: C++ Builder 2007 - Unable to open file MYDACVCL105.OBJ
Replies: 3
Views: 1662

C++ Builder 2007 - Unable to open file MYDACVCL105.OBJ

When I use MyDAC 7.6.12 all works fine
if I am with 8.0.1 or 8.0.2, one of my C++ Builder's project shows:
[ILINK32 Error]Fatal: Unable to open file 'MYDACVCL105.OBJ'
If I do downgrade to MyDAC 7.6.12 so all works OK again.

(Windows XP - RAD Studio 2007)

Generally this problem occurs because path missing, when .lib not found, but this it is not the problem. I tried to add mydacvcl105.lib to project but the problem is the same...

Maybe one configuration on project. Has anyone had this problem?

Roberto
by RNOVAK
Thu 05 Jul 2012 13:19
Forum: MySQL Data Access Components
Topic: About Support Site - Off Topic
Replies: 5
Views: 1658

Re: About Support Site - Off Topic

Confirmed.

I tested with other email provider (@gmail.com) and works fine.
With @terra.com.br fails.

Additional Information: I received a log error trying sendo email do other server (digitalriver.com) using @terra.com.br:
"Sender address rejected:SPF fail - dc5snat01.digitalriver.com[85.255.19.254] is not allowed to send mail with the domain terra.com.br"
I think is the same problem around Internet Routing.

Very thanks.
by RNOVAK
Wed 04 Jul 2012 19:23
Forum: MySQL Data Access Components
Topic: About Support Site - Off Topic
Replies: 5
Views: 1658

Re: About Support Site - Off Topic

I did new requests today with the subjetct 'Test' from diferent IPs, using Internet Explorer and Google Chrome. (on www.devart.com | Support | Request Support)

My control SPAM is disabled. I didn't received the copy to email yet.
On site I received the message "Thank you for your feedback. You will receive a reply shortly'

The IPs are from Brasil, I tested from 2 different computers. I would like to identify the problem.

Roberto Novakosky
by RNOVAK
Tue 03 Jul 2012 14:50
Forum: MySQL Data Access Components
Topic: About Support Site - Off Topic
Replies: 5
Views: 1658

About Support Site - Off Topic

I always receive quick responses.
Last week I used support page and email but without response.
About Support, I marked "receive copy" but i didnt receive the copy...

Is the site or support with problems ?
Anyone with the same problem ?