Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sql not always rushmore'd
Message
De
03/05/2006 16:51:35
 
 
À
03/05/2006 16:42:24
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01113886
Message ID:
01118922
Vues:
29
>set console off
>
>PS: I think a better way is to use 3rd memvar parameter.
>
>Cetin

Here is my code:
lparameters tcUsGrLink_pk, tdDate, ;
	tcAlias, tcFilter, tcField

local lcSQLStr, lcFilter, ;
	lcSQLStrTemp, lcDateTime, ;
	lcFieldList, lcGroupBy, llReturn, ltTime
private pcInfo
	
ltTime = datetime()
if empty(m.tcUsGrLink_pk)
	lcFilter = ""
else
	lcFilter = [Usgrlink.cUsGrLink_pk = "] + m.tcUsGrLink_pk + [" AND ]
endif

if empty(m.tcAlias)
	tcAlias = 'c_EmployeesQueuesInfo'
endif

if empty(m.tdDate)
	tdDate = date()
endif

if empty(m.tcFilter)
	tcFilter = ""
endif

do case
case empty(m.tcField)
	lcFieldList = [Trans.cTrans_pk, Usgrlink.cUsGrlink_pk, ] + ;
		[Users.cUserID, Trans.yCurrent_balance_amount ]
	lcGroupBy = ""
case m.tcField = 'cusgrlink_pk'
*!*		lcFieldList = [COUNT(Trans.cTrans_pk) as iAccounts_Count, ] + ;
*!*			[Usgrlink.cUsGrlink_pk, ] + ;
*!*			[MAX(Users.cUserID) as cUserID, ] + ;
*!*			[SUM(Trans.yCurrent_balance_amount) as yCurrent_balance_amount]
	lcFieldList = [COUNT(cTrans_pk) as iAccounts_Count, ] + ;
		[cUsGrlink_pk, ] + ;
		[MAX(cUserID) as cUserID, ] + ;
		[SUM(yCurrent_balance_amount) as yCurrent_balance_amount]
*	lcGroupBy = [GROUP BY UsGrlink.cUsGrLink_pk]
	lcGroupBy = [GROUP BY cUsGrLink_pk]

case m.tcField =  'cuserid'
*!*		lcFieldList = [COUNT(Trans.cTrans_pk) as iAccounts_Count, ] + ;
*!*			[Users.cUserID, ] + ;
*!*			[SUM(Trans.yCurrent_balance_amount) as yCurrent_balance_amount]
	lcFieldList = [cUserID, COUNT(cTrans_pk) as iAccounts_Count, SUM(yCurrent_balance_amount) as yCurrent_balance_amount]
*lcGroupBy = [GROUP BY Users.cUserID]
	lcGroupBy = [GROUP BY cUserID]
endcase

lcDateTime = TimeToStr(dtot(m.tdDate + 1)-1)

text to lcFilter noshow textmerge
	<<m.lcFilter>> Trans_Employees_Queues.iActive_Flag = 1 ;
	 AND Employee_queue_schedules.tScheduled_time <= <<m.lcDateTime>> ; 
    AND Employee_queue_schedules.iActive_Flag = 1 ; 
    and Trans.cResolution_Codes_fk is NULL ;
	<<m.tcFilter>>
endtext	

TEXT TO lcSQLStr NOSHOW TEXTMERGE PRETEXT 7
    SELECT Trans_Employees_Queues.cTrans_Employees_Queues_pk , ;
           Trans_Employees_Queues.cCommission_Owner_UsGrLink_fk as cUsGrlink_pk ;           
    FROM Trans_Employees_Queues ;
    INNER JOIN Employee_queue_schedules ;
    ON Trans_employees_queues.cTrans_employees_queues_pk = ;
     Employee_queue_schedules.cTrans_employees_queues_fk ;   
     inner join Trans on Trans_Employees_Queues.cTrans_fk = Trans.cTrans_pk ;     
    WHERE <<m.lcFilter>>    
ENDTEXT
SET DELETED off
*set optimize off
SYS(3092, "SQLLog.TXT")
sys(3054,12,"pcInfo")
llReturn = RunSQL(m.lcSQLStr, m.tcAlias)
*set optimize on
_cliptext = m.lcSQLStr + chr(13) + chr(10) + m.pcInfo
*sys(3054,0)

SET DELETED on
index on cUsGrLink_pk tag cUsgrlink
=messagebox(datetime() - m.ltTime)
=errorMsg(m.pcInfo)
return m.llReturn

endfunc
Once I ran this program, and then DO MAIN.prg, I see all Rushmore info on the screen. I do use the third parameter, as you see.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform