Hola
se me están duplicando algunos registros
como debo hacer para evitar se dupliquen, como se filtran borran etc. en Mysql
Saluditos
cRegis := "CREATE TABLE clientmp AS SELECT * FROM clientes GROUP BY (clientes.ruc_dni)" // 1ro
SQLExec(oMySQL, cRegis)
cRegis := "DELETE FROM clientes" // 2do
SQLExec(oMySQL, cRegis)
cRegis := "INSERT INTO clientes (SELECT * FROM clientmp)" // 3ro
SQLExec(oMySQL, cRegis)
cRegis := "DROP TABLE clientmp" // 4to
SQLExec(oMySQL, cRegis)
cRegis := "OPTIMIZE TABLE clientes" // 5to
oObj := SQLQry(oMySQL, oObj, cRegis)
#include "fivewin.ch"
#include <tdolphin.ch>
#DEFINE C_SIMPLE CHR( 39 )
#DEFINE c_simple CHR( 39 )
Function Test()
local cClave := "0001"
local cNombre := "CESAR CORTES CRUZ"
local cDir := "CANELO 97"
local cQry := ""
local oQry
local nSeek
* verificamos si el registro existe
cQry := "SELECT clave,nombre"
cQry += " FROM clientes"
cQry += " WHERE clave=" + C_SIMPLE + cstr2( cClave ) + C_SIMPLE
cQry += " ORDER BY clave LIMIT 1"
oQry := oCon:Query( cQry )
nSeek := oQry:nRecCount
oQry:End()
if nSeek = 0
cQry := "INSERT INTO clientes SET "
cQry += "clave=" + ClipValue2SQL( cClave ) + ","
else
cQry := "UPDATE clientes SET "
endif
cQry += "nombre=" + ClipValue2SQL( cNombre ) + ","
cQry += "direccion=" + ClipValue2SQL( cDir )
if nSeek > 0
cQry += " WHERE clave=" + C_SIMPLE + cstr2( cClave ) + C_SIMPLE
ENDIF
//guardamos la informacion
oCon:BeginTransaction()
oCon:Execute( cQry )
oCon:CommitTransaction()
Return nil
FUNCTION cStr2( nNum )
RETURN AllTrim( CStr( nNum ) )
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 54 guests