- Home
- LLBLGen Pro
- LLBLGen Pro Runtime Framework
Performance
Joined: 27-Jun-2011
Hi I'm using llblgen pro to update our application from an isam database to SQL. I have written a generic interface at this stage which mimics the old isam routines, whilst we transition.
I am looking for some guidance on how best to write update loops.
For instance.
In our current software we might have a loop that does an update on a bunch of selected records. It might look something like this
result = SelectRecord(selct conditions);
while (result) {
ReadRow
UpdateRow
SaveRow
result = NextRecord();
}
Whilst this works, the performance seems to be ordinary. I could see that the updates could probably be done as a single update query posted to the SQL server
update table where (selct conditions)
But this seems to defeat the whole purpose of llblgen.
How do people use llblgen in this scenario.
Regards
It depends on how do you want to update these records.
If you can write one SQL query to Update them, then you can use one call from LLBLGen to execute such query.
e.g. UPDATE Orders SET Discount = 0
Else you may fetch the etities updates them one by one in memory, then save the entire collection at one shot. Internally this executes one database Update command for each entity, but executes them all within one transaction.
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
Joined: 27-Jun-2011
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I am working on a couple of examples. One thing I found was to use the includeexclude list so that I would have thought the select would reduce down to just the fields I want. However the select still seems to select every record. It just only includes certain fields in the fields list. Is this as it should be?
Below is the select I get even though I just asked for three fields
SELECT [msa29d].[dbo].[usermas].[userid_accessrego] AS [Userid_accessrego], [msa29d].[dbo].[usermas].[userid_additem] AS [Userid_additem], [msa29d].[dbo].[usermas].[userid_adjwip] AS [Userid_adjwip], [msa29d].[dbo].[usermas].[userid_allowadj] AS [Userid_allowadj], [msa29d].[dbo].[usermas].[userid_allowmain] AS [Userid_allowmain], [msa29d].[dbo].[usermas].[userid_amendjob] AS [Userid_amendjob], [msa29d].[dbo].[usermas].[userid_amendorder] AS [Userid_amendorder], [msa29d].[dbo].[usermas].[userid_autoconnect] AS [Userid_autoconnect], [msa29d].[dbo].[usermas].[userid_autoindex] AS [Userid_autoindex], [msa29d].[dbo].[usermas].[userid_benchonly] AS [Userid_benchonly], [msa29d].[dbo].[usermas].[userid_boxpsid] AS [Userid_boxpsid], [msa29d].[dbo].[usermas].[userid_cdraw] AS [Userid_cdraw], [msa29d].[dbo].[usermas].[userid_changedep] AS [Userid_changedep], [msa29d].[dbo].[usermas].[userid_changeper] AS [Userid_changeper], [msa29d].[dbo].[usermas].[userid_changeppayinv] AS [Userid_changeppayinv], [msa29d].[dbo].[usermas].[userid_changesch] AS [Userid_changesch], [msa29d].[dbo].[usermas].[userid_changesman] AS [Userid_changesman], [msa29d].[dbo].[usermas].[userid_chgbin] AS [Userid_chgbin], [msa29d].[dbo].[usermas].[userid_chqpsid] AS [Userid_chqpsid], [msa29d].[dbo].[usermas].[userid_cnpsid] AS [Userid_cnpsid], [msa29d].[dbo].[usermas].[userid_coilyeild] AS [Userid_coilyeild], [msa29d].[dbo].[usermas].[userid_compid] AS [Userid_compid], [msa29d].[dbo].[usermas].[userid_costch] AS [Userid_costch], [msa29d].[dbo].[usermas].[userid_courpsid] AS [Userid_courpsid], [msa29d].[dbo].[usermas].[userid_created] AS [Userid_created], [msa29d].[dbo].[usermas].[userid_createponrep] AS [Userid_createponrep], [msa29d].[dbo].[usermas].[userid_createporep] AS [Userid_createporep], [msa29d].[dbo].[usermas].[userid_credit] AS [Userid_credit], [msa29d].[dbo].[usermas].[userid_creditnotelmt] AS [Userid_creditnotelmt], [msa29d].[dbo].[usermas].[userid_datefmt] AS [Userid_datefmt], [msa29d].[dbo].[usermas].[userid_dbttxt] AS [Userid_dbttxt], [msa29d].[dbo].[usermas].[userid_debtadradr] AS [Userid_debtadradr], [msa29d].[dbo].[usermas].[userid_defdelopt] AS [Userid_defdelopt], [msa29d].[dbo].[usermas].[userid_defproopt] AS [Userid_defproopt], [msa29d].[dbo].[usermas].[userid_del] AS [Userid_del], [msa29d].[dbo].[usermas].[userid_delcoil] AS [Userid_delcoil], [msa29d].[dbo].[usermas].[userid_deljob] AS [Userid_deljob], [msa29d].[dbo].[usermas].[userid_delorder] AS [Userid_delorder], [msa29d].[dbo].[usermas].[userid_delpslip] AS [Userid_delpslip], [msa29d].[dbo].[usermas].[userid_delquote] AS [Userid_delquote], [msa29d].[dbo].[usermas].[userid_disablecrdgr] AS [Userid_disablecrdgr], [msa29d].[dbo].[usermas].[userid_disablecredit] AS [Userid_disablecredit], [msa29d].[dbo].[usermas].[userid_disc] AS [Userid_disc], [msa29d].[dbo].[usermas].[userid_editafter] AS [Userid_editafter], [msa29d].[dbo].[usermas].[userid_editbefore] AS [Userid_editbefore], [msa29d].[dbo].[usermas].[userid_editinv] AS [Userid_editinv], [msa29d].[dbo].[usermas].[userid_editwo] AS [Userid_editwo], [msa29d].[dbo].[usermas].[userid_eftpos] AS [Userid_eftpos], [msa29d].[dbo].[usermas].[userid_email] AS [Userid_email], [msa29d].[dbo].[usermas].[userid_empid] AS [Userid_empid], [msa29d].[dbo].[usermas].[userid_enposhwhouse] AS [Userid_enposhwhouse], [msa29d].[dbo].[usermas].[userid_enposlwhouse] AS [Userid_enposlwhouse], [msa29d].[dbo].[usermas].[userid_finalisejob] AS [Userid_finalisejob], [msa29d].[dbo].[usermas].[userid_finorder] AS [Userid_finorder], [msa29d].[dbo].[usermas].[userid_gp] AS [Userid_gp], [msa29d].[dbo].[usermas].[userid_grnoinv] AS [Userid_grnoinv], [msa29d].[dbo].[usermas].[userid_hidesecurityw] AS [Userid_hidesecurityw], [msa29d].[dbo].[usermas].[userid_hold] AS [Userid_hold], [msa29d].[dbo].[usermas].[userid_holdquote] AS [Userid_holdquote], [msa29d].[dbo].[usermas].[userid_id] AS [Userid_id], [msa29d].[dbo].[usermas].[userid_incapononrep] AS [Userid_incapononrep], [msa29d].[dbo].[usermas].[userid_index0] AS [Userid_index0], [msa29d].[dbo].[usermas].[userid_index1] AS [Userid_index1], [msa29d].[dbo].[usermas].[userid_index10] AS [Userid_index10], [msa29d].[dbo].[usermas].[userid_index11] AS [Userid_index11], [msa29d].[dbo].[usermas].[userid_index12] AS [Userid_index12], [msa29d].[dbo].[usermas].[userid_index13] AS [Userid_index13], [msa29d].[dbo].[usermas].[userid_index14] AS [Userid_index14], [msa29d].[dbo].[usermas].[userid_index15] AS [Userid_index15], [msa29d].[dbo].[usermas].[userid_index16] AS [Userid_index16], [msa29d].[dbo].[usermas].[userid_index17] AS [Userid_index17], [msa29d].[dbo].[usermas].[userid_index18] AS [Userid_index18], [msa29d].[dbo].[usermas].[userid_index19] AS [Userid_index19], [msa29d].[dbo].[usermas].[userid_index2] AS [Userid_index2], [msa29d].[dbo].[usermas].[userid_index3] AS [Userid_index3], [msa29d].[dbo].[usermas].[userid_index4] AS [Userid_index4], [msa29d].[dbo].[usermas].[userid_index5] AS [Userid_index5], [msa29d].[dbo].[usermas].[userid_index6] AS [Userid_index6], [msa29d].[dbo].[usermas].[userid_index7] AS [Userid_index7], [msa29d].[dbo].[usermas].[userid_index8] AS [Userid_index8], [msa29d].[dbo].[usermas].[userid_index9] AS [Userid_index9], [msa29d].[dbo].[usermas].[userid_invdef] AS [Userid_invdef], [msa29d].[dbo].[usermas].[userid_invpsid] AS [Userid_invpsid], [msa29d].[dbo].[usermas].[userid_ipdapackage0] AS [Userid_ipdapackage0], [msa29d].[dbo].[usermas].[userid_ipdapackage1] AS [Userid_ipdapackage1], [msa29d].[dbo].[usermas].[userid_ipdapackage10] AS [Userid_ipdapackage10], [msa29d].[dbo].[usermas].[userid_ipdapackage11] AS [Userid_ipdapackage11], [msa29d].[dbo].[usermas].[userid_ipdapackage12] AS [Userid_ipdapackage12], [msa29d].[dbo].[usermas].[userid_ipdapackage13] AS [Userid_ipdapackage13], [msa29d].[dbo].[usermas].[userid_ipdapackage14] AS [Userid_ipdapackage14], [msa29d].[dbo].[usermas].[userid_ipdapackage15] AS [Userid_ipdapackage15], [msa29d].[dbo].[usermas].[userid_ipdapackage16] AS [Userid_ipdapackage16], [msa29d].[dbo].[usermas].[userid_ipdapackage17] AS [Userid_ipdapackage17], [msa29d].[dbo].[usermas].[userid_ipdapackage18] AS [Userid_ipdapackage18], [msa29d].[dbo].[usermas].[userid_ipdapackage19] AS [Userid_ipdapackage19], [msa29d].[dbo].[usermas].[userid_ipdapackage2] AS [Userid_ipdapackage2], [msa29d].[dbo].[usermas].[userid_ipdapackage3] AS [Userid_ipdapackage3], [msa29d].[dbo].[usermas].[userid_ipdapackage4] AS [Userid_ipdapackage4], [msa29d].[dbo].[usermas].[userid_ipdapackage5] AS [Userid_ipdapackage5], [msa29d].[dbo].[usermas].[userid_ipdapackage6] AS [Userid_ipdapackage6], [msa29d].[dbo].[usermas].[userid_ipdapackage7] AS [Userid_ipdapackage7], [msa29d].[dbo].[usermas].[userid_ipdapackage8] AS [Userid_ipdapackage8], [msa29d].[dbo].[usermas].[userid_ipdapackage9] AS [Userid_ipdapackage9], [msa29d].[dbo].[usermas].[userid_jobpda] AS [Userid_jobpda], [msa29d].[dbo].[usermas].[userid_jobsch] AS [Userid_jobsch], [msa29d].[dbo].[usermas].[userid_lastname] AS [Userid_lastname], [msa29d].[dbo].[usermas].[userid_locksumm] AS [Userid_locksumm], [msa29d].[dbo].[usermas].[userid_locktemp] AS [Userid_locktemp], [msa29d].[dbo].[usermas].[userid_lowerprice] AS [Userid_lowerprice], [msa29d].[dbo].[usermas].[userid_lowgp] AS [Userid_lowgp], [msa29d].[dbo].[usermas].[userid_maintord] AS [Userid_maintord], [msa29d].[dbo].[usermas].[userid_menu0] AS [Userid_menu0], [msa29d].[dbo].[usermas].[userid_menu1] AS [Userid_menu1], [msa29d].[dbo].[usermas].[userid_menu10] AS [Userid_menu10], [msa29d].[dbo].[usermas].[userid_menu11] AS [Userid_menu11], [msa29d].[dbo].[usermas].[userid_menu12] AS [Userid_menu12], [msa29d].[dbo].[usermas].[userid_menu13] AS [Userid_menu13], [msa29d].[dbo].[usermas].[userid_menu14] AS [Userid_menu14], [msa29d].[dbo].[usermas].[userid_menu15] AS [Userid_menu15], [msa29d].[dbo].[usermas].[userid_menu16] AS [Userid_menu16], [msa29d].[dbo].[usermas].[userid_menu17] AS [Userid_menu17], [msa29d].[dbo].[usermas].[userid_menu18] AS [Userid_menu18], [msa29d].[dbo].[usermas].[userid_menu19] AS [Userid_menu19], [msa29d].[dbo].[usermas].[userid_menu2] AS [Userid_menu2], [msa29d].[dbo].[usermas].[userid_menu3] AS [Userid_menu3], [msa29d].[dbo].[usermas].[userid_menu4] AS [Userid_menu4], [msa29d].[dbo].[usermas].[userid_menu5] AS [Userid_menu5], [msa29d].[dbo].[usermas].[userid_menu6] AS [Userid_menu6], [msa29d].[dbo].[usermas].[userid_menu7] AS [Userid_menu7], [msa29d].[dbo].[usermas].[userid_menu8] AS [Userid_menu8], [msa29d].[dbo].[usermas].[userid_menu9] AS [Userid_menu9], [msa29d].[dbo].[usermas].[userid_mobile] AS [Userid_mobile], [msa29d].[dbo].[usermas].[userid_modified] AS [Userid_modified], [msa29d].[dbo].[usermas].[userid_name] AS [Userid_name], [msa29d].[dbo].[usermas].[userid_no] AS [Userid_no], [msa29d].[dbo].[usermas].[userid_nobo] AS [Userid_nobo], [msa29d].[dbo].[usermas].[userid_nodays] AS [Userid_nodays], [msa29d].[dbo].[usermas].[userid_noloc] AS [Userid_noloc], [msa29d].[dbo].[usermas].[userid_odbc] AS [Userid_odbc], [msa29d].[dbo].[usermas].[userid_ospurch] AS [Userid_ospurch], [msa29d].[dbo].[usermas].[userid_overoffcut] AS [Userid_overoffcut], [msa29d].[dbo].[usermas].[userid_overprice] AS [Userid_overprice], [msa29d].[dbo].[usermas].[userid_oversdisc] AS [Userid_oversdisc], [msa29d].[dbo].[usermas].[userid_oversdiscone] AS [Userid_oversdiscone], [msa29d].[dbo].[usermas].[userid_oversos] AS [Userid_oversos], [msa29d].[dbo].[usermas].[userid_overstocked] AS [Userid_overstocked], [msa29d].[dbo].[usermas].[userid_overwaste] AS [Userid_overwaste], [msa29d].[dbo].[usermas].[userid_ovrcoil] AS [Userid_ovrcoil], [msa29d].[dbo].[usermas].[userid_ovrpocredlim] AS [Userid_ovrpocredlim], [msa29d].[dbo].[usermas].[userid_package0] AS [Userid_package0], [msa29d].[dbo].[usermas].[userid_package1] AS [Userid_package1], [msa29d].[dbo].[usermas].[userid_package10] AS [Userid_package10], [msa29d].[dbo].[usermas].[userid_package11] AS [Userid_package11], [msa29d].[dbo].[usermas].[userid_package12] AS [Userid_package12], [msa29d].[dbo].[usermas].[userid_package13] AS [Userid_package13], [msa29d].[dbo].[usermas].[userid_package14] AS [Userid_package14], [msa29d].[dbo].[usermas].[userid_package15] AS [Userid_package15], [msa29d].[dbo].[usermas].[userid_package16] AS [Userid_package16], [msa29d].[dbo].[usermas].[userid_package17] AS [Userid_package17], [msa29d].[dbo].[usermas].[userid_package18] AS [Userid_package18], [msa29d].[dbo].[usermas].[userid_package19] AS [Userid_package19], [msa29d].[dbo].[usermas].[userid_package2] AS [Userid_package2], [msa29d].[dbo].[usermas].[userid_package20] AS [Userid_package20], [msa29d].[dbo].[usermas].[userid_package21] AS [Userid_package21], [msa29d].[dbo].[usermas].[userid_package22] AS [Userid_package22], [msa29d].[dbo].[usermas].[userid_package23] AS [Userid_package23], [msa29d].[dbo].[usermas].[userid_package24] AS [Userid_package24], [msa29d].[dbo].[usermas].[userid_package25] AS [Userid_package25], [msa29d].[dbo].[usermas].[userid_package26] AS [Userid_package26], [msa29d].[dbo].[usermas].[userid_package27] AS [Userid_package27], [msa29d].[dbo].[usermas].[userid_package28] AS [Userid_package28], [msa29d].[dbo].[usermas].[userid_package29] AS [Userid_package29], [msa29d].[dbo].[usermas].[userid_package3] AS [Userid_package3], [msa29d].[dbo].[usermas].[userid_package30] AS [Userid_package30], [msa29d].[dbo].[usermas].[userid_package31] AS [Userid_package31], [msa29d].[dbo].[usermas].[userid_package32] AS [Userid_package32], [msa29d].[dbo].[usermas].[userid_package33] AS [Userid_package33], [msa29d].[dbo].[usermas].[userid_package34] AS [Userid_package34], [msa29d].[dbo].[usermas].[userid_package35] AS [Userid_package35], [msa29d].[dbo].[usermas].[userid_package36] AS [Userid_package36], [msa29d].[dbo].[usermas].[userid_package37] AS [Userid_package37], [msa29d].[dbo].[usermas].[userid_package38] AS [Userid_package38], [msa29d].[dbo].[usermas].[userid_package39] AS [Userid_package39], [msa29d].[dbo].[usermas].[userid_package4] AS [Userid_package4], [msa29d].[dbo].[usermas].[userid_package5] AS [Userid_package5], [msa29d].[dbo].[usermas].[userid_package6] AS [Userid_package6], [msa29d].[dbo].[usermas].[userid_package7] AS [Userid_package7], [msa29d].[dbo].[usermas].[userid_package8] AS [Userid_package8], [msa29d].[dbo].[usermas].[userid_package9] AS [Userid_package9], [msa29d].[dbo].[usermas].[userid_password] AS [Userid_password], [msa29d].[dbo].[usermas].[userid_pdadefmenu] AS [Userid_pdadefmenu], [msa29d].[dbo].[usermas].[userid_pdapackage0] AS [Userid_pdapackage0], [msa29d].[dbo].[usermas].[userid_pdapackage1] AS [Userid_pdapackage1], [msa29d].[dbo].[usermas].[userid_pdapackage10] AS [Userid_pdapackage10], [msa29d].[dbo].[usermas].[userid_pdapackage11] AS [Userid_pdapackage11], [msa29d].[dbo].[usermas].[userid_pdapackage12] AS [Userid_pdapackage12], [msa29d].[dbo].[usermas].[userid_pdapackage13] AS [Userid_pdapackage13], [msa29d].[dbo].[usermas].[userid_pdapackage14] AS [Userid_pdapackage14], [msa29d].[dbo].[usermas].[userid_pdapackage15] AS [Userid_pdapackage15], [msa29d].[dbo].[usermas].[userid_pdapackage16] AS [Userid_pdapackage16], [msa29d].[dbo].[usermas].[userid_pdapackage17] AS [Userid_pdapackage17], [msa29d].[dbo].[usermas].[userid_pdapackage18] AS [Userid_pdapackage18], [msa29d].[dbo].[usermas].[userid_pdapackage19] AS [Userid_pdapackage19], [msa29d].[dbo].[usermas].[userid_pdapackage2] AS [Userid_pdapackage2], [msa29d].[dbo].[usermas].[userid_pdapackage20] AS [Userid_pdapackage20], [msa29d].[dbo].[usermas].[userid_pdapackage21] AS [Userid_pdapackage21], [msa29d].[dbo].[usermas].[userid_pdapackage22] AS [Userid_pdapackage22], [msa29d].[dbo].[usermas].[userid_pdapackage23] AS [Userid_pdapackage23], [msa29d].[dbo].[usermas].[userid_pdapackage24] AS [Userid_pdapackage24], [msa29d].[dbo].[usermas].[userid_pdapackage25] AS [Userid_pdapackage25], [msa29d].[dbo].[usermas].[userid_pdapackage26] AS [Userid_pdapackage26], [msa29d].[dbo].[usermas].[userid_pdapackage27] AS [Userid_pdapackage27], [msa29d].[dbo].[usermas].[userid_pdapackage28] AS [Userid_pdapackage28], [msa29d].[dbo].[usermas].[userid_pdapackage29] AS [Userid_pdapackage29], [msa29d].[dbo].[usermas].[userid_pdapackage3] AS [Userid_pdapackage3], [msa29d].[dbo].[usermas].[userid_pdapackage30] AS [Userid_pdapackage30], [msa29d].[dbo].[usermas].[userid_pdapackage31] AS [Userid_pdapackage31], [msa29d].[dbo].[usermas].[userid_pdapackage32] AS [Userid_pdapackage32], [msa29d].[dbo].[usermas].[userid_pdapackage33] AS [Userid_pdapackage33], [msa29d].[dbo].[usermas].[userid_pdapackage34] AS [Userid_pdapackage34], [msa29d].[dbo].[usermas].[userid_pdapackage35] AS [Userid_pdapackage35], [msa29d].[dbo].[usermas].[userid_pdapackage36] AS [Userid_pdapackage36], [msa29d].[dbo].[usermas].[userid_pdapackage37] AS [Userid_pdapackage37], [msa29d].[dbo].[usermas].[userid_pdapackage38] AS [Userid_pdapackage38], [msa29d].[dbo].[usermas].[userid_pdapackage39] AS [Userid_pdapackage39], [msa29d].[dbo].[usermas].[userid_pdapackage4] AS [Userid_pdapackage4], [msa29d].[dbo].[usermas].[userid_pdapackage40] AS [Userid_pdapackage40], [msa29d].[dbo].[usermas].[userid_pdapackage41] AS [Userid_pdapackage41], [msa29d].[dbo].[usermas].[userid_pdapackage42] AS [Userid_pdapackage42], [msa29d].[dbo].[usermas].[userid_pdapackage43] AS [Userid_pdapackage43], [msa29d].[dbo].[usermas].[userid_pdapackage44] AS [Userid_pdapackage44], [msa29d].[dbo].[usermas].[userid_pdapackage45] AS [Userid_pdapackage45], [msa29d].[dbo].[usermas].[userid_pdapackage46] AS [Userid_pdapackage46], [msa29d].[dbo].[usermas].[userid_pdapackage47] AS [Userid_pdapackage47], [msa29d].[dbo].[usermas].[userid_pdapackage48] AS [Userid_pdapackage48], [msa29d].[dbo].[usermas].[userid_pdapackage49] AS [Userid_pdapackage49], [msa29d].[dbo].[usermas].[userid_pdapackage5] AS [Userid_pdapackage5], [msa29d].[dbo].[usermas].[userid_pdapackage6] AS [Userid_pdapackage6], [msa29d].[dbo].[usermas].[userid_pdapackage7] AS [Userid_pdapackage7], [msa29d].[dbo].[usermas].[userid_pdapackage8] AS [Userid_pdapackage8], [msa29d].[dbo].[usermas].[userid_pdapackage9] AS [Userid_pdapackage9], [msa29d].[dbo].[usermas].[userid_phone] AS [Userid_phone], [msa29d].[dbo].[usermas].[userid_picker] AS [Userid_picker], [msa29d].[dbo].[usermas].[userid_pop3] AS [Userid_pop3], [msa29d].[dbo].[usermas].[userid_popsid] AS [Userid_popsid], [msa29d].[dbo].[usermas].[userid_position] AS [Userid_position], [msa29d].[dbo].[usermas].[userid_price] AS [Userid_price], [msa29d].[dbo].[usermas].[userid_pricech] AS [Userid_pricech], [msa29d].[dbo].[usermas].[userid_profile] AS [Userid_profile], [msa29d].[dbo].[usermas].[userid_pslippsid] AS [Userid_pslippsid], [msa29d].[dbo].[usermas].[userid_regid] AS [Userid_regid], [msa29d].[dbo].[usermas].[userid_rempsid] AS [Userid_rempsid], [msa29d].[dbo].[usermas].[userid_reppsid] AS [Userid_reppsid], [msa29d].[dbo].[usermas].[userid_showcost] AS [Userid_showcost], [msa29d].[dbo].[usermas].[userid_smanid] AS [Userid_smanid], [msa29d].[dbo].[usermas].[userid_smtp] AS [Userid_smtp], [msa29d].[dbo].[usermas].[userid_stkware] AS [Userid_stkware], [msa29d].[dbo].[usermas].[userid_stockneg] AS [Userid_stockneg], [msa29d].[dbo].[usermas].[userid_sundrypogl] AS [Userid_sundrypogl], [msa29d].[dbo].[usermas].[userid_super] AS [Userid_super], [msa29d].[dbo].[usermas].[userid_taxinvamt] AS [Userid_taxinvamt], [msa29d].[dbo].[usermas].[userid_tdpsid] AS [Userid_tdpsid], [msa29d].[dbo].[usermas].[userid_totaldisc] AS [Userid_totaldisc], [msa29d].[dbo].[usermas].[userid_type] AS [Userid_type], [msa29d].[dbo].[usermas].[userid_tzoffset] AS [Userid_tzoffset], [msa29d].[dbo].[usermas].[userid_udselect] AS [Userid_udselect], [msa29d].[dbo].[usermas].[userid_whid] AS [Userid_whid], [msa29d].[dbo].[usermas].[userid_wopsid] AS [Userid_wopsid] FROM [msa29d].[dbo].[usermas] WHERE ( ( [msa29d].[dbo].[usermas].[userid_id] = @p1))
Joined: 27-Jun-2011
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I'll take a look at updating the entities directly tomorrow. This really looks like what I want, but I also think my previous comment could have some merit as well.
Joined: 27-Jun-2011
Hi Otis Could you also take a look at the following question I have. I'm not certain whether this is the best way
http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=20170
phil.salomon wrote:
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I am working on a couple of examples. One thing I found was to use the includeexclude list so that I would have thought the select would reduce down to just the fields I want. However the select still seems to select every record. It just only includes certain fields in the fields list. Is this as it should be?
No It isn't. Please show us the code you are using to exclude fields. Also your LLBLGen version and runtime library version (http://llblgen.com/tinyforum/Messages.aspx?ThreadID=7722).
phil.salomon wrote:
I'll take a look at updating the entities directly tomorrow.
Great. For more info read Expressions in Entity Updates.
Joined: 27-Jun-2011
daelmo wrote:
phil.salomon wrote:
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I am working on a couple of examples. One thing I found was to use the includeexclude list so that I would have thought the select would reduce down to just the fields I want. However the select still seems to select every record. It just only includes certain fields in the fields list. Is this as it should be?
No It isn't. Please show us the code you are using to exclude fields. Also your LLBLGen version and runtime library version (http://llblgen.com/tinyforum/Messages.aspx?ThreadID=7722).
phil.salomon wrote:
I'll take a look at updating the entities directly tomorrow.
Great. For more info read Expressions in Entity Updates.
Well, first I call the following code if I want to just get certain fields
public void AddIncludeList(String fieldname)
{
EntityField2 e;
if (include == null)
{
include = new ExcludeIncludeFieldsList();
include.ExcludeContainedFields = false;
String createdname = NameConvert.ModifiedCreatedName(fieldname, true);
try
{
e = (EntityField2)TableEntity.Fields[createdname];
include.Add(e);
}
catch { }
String modifiedname = NameConvert.ModifiedCreatedName(fieldname, false);
try
{
e = (EntityField2)TableEntity.Fields[modifiedname];
include.Add(e);
}
catch { }
}
try
{
e = (EntityField2)TableEntity.Fields[NameConvert.ConvertFieldName(fieldname)];
include.Add(e);
}
catch { }
}
Then use the following code to do the select
public bool FetchEntityCollection(DataAccessAdapter da, IRelationPredicateBucket filter, ISortExpression sort, out byte[] buffer)
{
buffer = null;
try
{
thisCollection.filter = filter;
thisCollection.sort = sort;
thisCollection.currentRecord = 0;
da.FetchEntityCollection(thisCollection.collection, filter, 0, sort, null, include, 1, thisCollection.PageSize);
if (thisCollection.collection.Count == 0)
{
Diagnostic.ErrorCode = Error_Code.INOT_ERR;
Diagnostic.LastError = "";
return (false);
}
thisCollection.currentRecord = 1;
TableEntity = thisCollection.GetCurrentEntity();
PK = GetPrimaryKey();
buffer = new byte[RecordLength];
BufferClass.CopyResultToByteBuffer(TableEntity, fields, buffer);
return (true);
}
catch (Exception ex)
{
Diagnostic.CatchError(ex, null, thisTable);
return (false);
}
}
Joined: 27-Jun-2011
daelmo wrote:
phil.salomon wrote:
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I am working on a couple of examples. One thing I found was to use the includeexclude list so that I would have thought the select would reduce down to just the fields I want. However the select still seems to select every record. It just only includes certain fields in the fields list. Is this as it should be?
No It isn't. Please show us the code you are using to exclude fields. Also your LLBLGen version and runtime library version (http://llblgen.com/tinyforum/Messages.aspx?ThreadID=7722).
phil.salomon wrote:
I'll take a look at updating the entities directly tomorrow.
Great. For more info read Expressions in Entity Updates.
hmmm. Thats strange. I tested it again and now its working.
Joined: 27-Jun-2011
Otis wrote:
Try to see whether you can write the updates as expressions, then use 'update entities directly' feature (which generates 1 query out of a specific entity to update multiple rows), see the entity sections in the manual for details.
I have tried the 'update entities directly' feature and have managed to get this to work. I am integrating into a C application, so can use it like the example shows. I need to create an expression, but I think I have a handle on how to do this.
Thanks
Joined: 27-Jun-2011
daelmo wrote:
phil.salomon wrote:
hmmm. Thats strange. I tested it again and now its working.
I can't explain that. So, Are you ok now? Is everything is fine and working?
all good thanks