What is the best of MySql (lib or class) TMySql, TDolphin

User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

Hello

are you downloaded from svn?
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

Daniel Garcia-Gil wrote:Hello

are you downloaded from svn?


To be honest - I dont remember. Where is svn?
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

look

http://tdolphin.blogspot.com/2010/06/comanzando-starting.html

do you have gmail account? maybe we can talk by gmail chat
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

I cannot change value of a field :

Code: Select all | Expand

oQry = oServer:Query( "SELECT account, last_name, first_name,balance FROM lanu" )do while !oQry:Eof()  if oQry:account="dog"  ?"before",oQry:account,oQry:balance    oQry:FieldPut("account" , "sobachka" )    oQry:FieldPut("balance" , 3.14 )    ?"after",oQry:account,oQry:balance  endif  oQry:Skip()enddooQry:Save()  


When I run this sample second time account is still "dog".
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

Hello

put the save after modify value

Code: Select all | Expand

do while !oQry:Eof()  if oQry:account="dog"  ?"before",oQry:account,oQry:balance    oQry:account = "sobachka"     oQry:balancen = 3.14    oQry:Save()    ?"after",oQry:account,oQry:balance  endif  oQry:Skip()enddo 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

[quote="Daniel Garcia-Gil"]Hello

put the save after modify value

Code: Select all | Expand

do while !oQry:Eof()  if oQry:account="dog"    ?"before",oQry:account,oQry:balance // dog 0.00    oQry:FieldPut("account" , "sobachka" )    oQry:FieldPut("balance" , 3.14 )    ?"after",oQry:account,oQry:balance // sobachka 3.14    oQry:Save()    ?"after save",oQry:account,oQry:balance // dog 0.00  endif  oQry:Skip()enddo 


It doesnt help. After Save() value becomes as it was before FieldPut!
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

hello

it's a better way and more fast

with dolphin

method 1

Code: Select all | Expand

oServer:Execute( "UPDATE table_name SET account = 'sobachka', balance = 3.14 WHERE account = 'dog' )


method 2

Code: Select all | Expand

oServer:Update( "table_name",  { "account", "balance" }, { 'sobachka', 3.14 } , "account = 'dog' " )
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

Daniel Garcia-Gil wrote:hello

it's a better way and more fast

with dolphin

method 1

Code: Select all | Expand

oServer:Execute( "UPDATE table_name SET account = 'sobachka', balance = 3.14 WHERE account = 'dog' )


method 2

Code: Select all | Expand

oServer:Update( "table_name",  { "account", "balance" }, { 'sobachka', 3.14 } , "account = 'dog' " )


1) May there is better way but why this way doesn't work? And what if I need to replace just one record?

2)Both ways give me same error :

08/15/12 19:16:14
Error MYSQL/1406 Data too long for column 'ACCOUNT' at row 1
=> DOLPHIN_DEFERROR line 2478
=> TDOLPHINSRV:CHECKERROR line 691
=> TDOLPHINSRV:SQLQUERY line 1705
=> TDOLPHINSRV:UPDATE line 1920
=> MAIN line 51
e:genCode 0
e:osCode 0
Workarea :
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

Hello

please create the table in Dolphin server, add some data and post the minimal sample here...
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

Daniel Garcia-Gil wrote:Hello

please create the table in Dolphin server, add some data and post the minimal sample here...


1) This is the Dolphin server ?

host=dolphintest.sitasoft.net
user=test_dolphin
psw=123456
flags=0
port=3306
dbname=dolphin_man



2) I there a sample how to create a table from Dbstruct() ?
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

mosh1 wrote:1) This is the Dolphin server ?

host=dolphintest.sitasoft.net
user=test_dolphin
psw=123456
flags=0
port=3306
dbname=dolphin_man

yes
use in mysql console... SHOW CREATE TABLE my_table
use this result to create the table in Dolphin server, is very fast and to easy


mosh1 wrote:2) I there a sample how to create a table from Dbstruct() ?

no
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

Daniel Garcia-Gil wrote:Hello

please create the table in Dolphin server, add some data and post the minimal sample here...


Code: Select all | Expand

#include "tdolphin.ch"#define CRLF Chr( 13 ) + Chr( 10 )PROCEDURE Main()LOCAL oServer   := NILLOCAL cText := ""local chost:="dolphintest2.sitasoft.net"local cuser:="test2_dolphin"local cpsw:="123456"local cflags:=0local cport:=3306local cdbname:="tdolphin_test"local oQryIF ( oServer := ConnectTo(2) ) == NIL  RETURNENDIFIF ! oServer:lError  cText += "Connection OK" + CRLF  cText += "Host: " + oServer:cHost +CRLF  cText += "Database: " +oServer:cDBName + CRLF  cText += oServer:GetServerInfo() + CRLF  cText += oServer:GetClientInfo()  ? cText + CRLFENDIFoQry = oServer:Query( "SELECT account, last_name, first_name,balance FROM lanu2" )do while !oQry:Eof()  if oQry:account="dog"    ?"before",oQry:account,oQry:balance    oQry:FieldPut("account" , "sobaka" )     oQry:FieldPut("balance" , 3.14 )    ?"after",oQry:account,oQry:balance    oQry:Save()    ?"after save",oQry:account,oQry:balance  endif  oQry:Skip()enddo?"Wait"inkey(0)oServer:End()RETURN#include "connto.prg" 
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by Daniel Garcia-Gil »

Hello

not work because dolphin delete extra space using Function AllTrim

the field LAST_NAME all content start with one SPACE,

example: " polkan"

when TDolphin use the Method Save, does convert the data to UPDATE statement ( but delete the first space ), now the field FIRST_NAME is "" TDolphin convert it to NULL (maybe a little bug)

for this case the best way is use the statement UPDATE directly...

now if you create a primary key, TDolphin locate the value for primary key and will make the SAVE successful

look the next sample with a copy of lanu2 ( lanu2_copy)

Code: Select all | Expand

#include "tdolphin.ch"PROCEDURE Main()LOCAL oServer   := NILLOCAL cText := ""local chost:="dolphintest2.sitasoft.net"local cuser:="test2_dolphin"local cpsw:="123456"local cflags:=0local cport:=3306local cdbname:="tdolphin_test"local oQry      CONNECT oServer HOST chost ;                      USER cUser ;                      PASSWORD cpsw ;                      PORT cPort ;                      DATABASE cDBNameoServer:bDebug = {| c | logfile( "debug.txt", { c } ) }oQry = oServer:Query( "SELECT id, account, last_name, first_name,balance FROM lanu2_copy" )do while !oQry:Eof()  if oQry:account="dog"    oQry:FieldPut("account" , "sobaka" )     oQry:FieldPut("balance" , 3.14 )    oQry:Save()  endif  oQry:Skip()enddooServer:End()RETURN 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
dutch
Posts: 1554
Joined: Fri Oct 07, 2005 5:56 pm
Location: Thailand

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by dutch »

Dear Mosh1,

I use update() or replace data in field and save() for delete the record. I'm not quite show what is the different but it's working fine for me.

Dutch

Code: Select all | Expand

        odb1:=oServer:Query("select * from rmty_avl")          n := 0        cTlRec := strim(odb1:reccount())        odb1:gotop()        do while !odb1:eof()  // odb1:recno() <= 100                        if valtype(odb1:rta_date) = 'D'                if odb1:fieldget("rta_date") < MEMVAR->comdat                    do while odb1:fieldget("rta_date") < MEMVAR->comdat .and. !odb1:eof()                        odb1:delete()                        odb1:save()                    end                else                    if RTY->(DbSeek( dtos(odb1:rta_date)+odb1:rta_rmty ))                                    if odb1:fieldget("rta_ooo") <> RTY->RTA_OOO .or. odb1:fieldget("rta_occ") <> RTY->RTA_OCC                            odb1:fieldput('rta_ooo', RTY->RTA_OOO )                            odb1:fieldput('rta_occ', RTY->RTA_OCC )                            odb1:update()                            n++                        end                    end                end            end            odb1:skip()              end        odb1:End() 

mosh1 wrote:I cannot change value of a field :

Code: Select all | Expand

oQry = oServer:Query( "SELECT account, last_name, first_name,balance FROM lanu" )do while !oQry:Eof()  if oQry:account="dog"  ?"before",oQry:account,oQry:balance    oQry:FieldPut("account" , "sobachka" )    oQry:FieldPut("balance" , 3.14 )    ?"after",oQry:account,oQry:balance  endif  oQry:Skip()enddooQry:Save()  


When I run this sample second time account is still "dog".
Regards,
Dutch

FWH 19.01 / xHarbour Simplex 1.2.3 / BCC73 / Pelles C / UEStudio
FWPPC 10.02 / Harbour for PPC (FTDN)
ADS V.9 / MySql / MariaDB
R&R 12 Infinity / Crystal Report XI R2
(Thailand)
mosh1
Posts: 129
Joined: Sun Oct 09, 2011 3:50 pm

Re: What is the best of MySql (lib or class) TMySql, TDolphin

Post by mosh1 »

Dear dutch,
dutch wrote:odb1:update()

There is no such method in my TDolphin version
Post Reply