NAVIGATIE

Freetime overzicht
Zoeken


  RUBRIEKEN

FAQ / Help
Wat mag niet?
WZL Wedstrijden
WZL Chat
WZL Toolbar
WZL Statistieken
WZL leden
WZL shop
E-cards

RSS

Fun-feed
Babe-feed
Stud-feed

Een groot aantal pokerrooms geven de mogelijkheid om poker te spelen op internet en geld te storten via het veilige iDeal betaalsysteem.
Overzicht » Computer » Programmeren » Samenvoegen ADO recordsets
Onderaan pagina
An Khayra 3.746
wzl-lid
Sinds 27/5/2004
T: 5 R: 72
19/12/2004 - 18:18u | Quote
Ik ga ook eens een vraag stellen zie.

Ik heb, in VB6, 2 ADO (disconnected) recordsets met dezelfde kolommen, en wil die samenvoegen tot een derde recordset. En dan moet er bovendien nog een DISTINCT op gebeuren ook.

Wat ik niet kan: de query kan ik niet wijzigen, en alle bewerkingen moeten in geheugen (moet snel gaan) gebeuren. Als het bovendien in 1 keer zou kunnen, zou best zijn.
Cassy 2.912
wzl-lid
Sinds 24/9/2004
T:4 - R:104
23/12/2004 - 10:18u | Quote
Hoe groot zijn die recordsets dan, als het 2 keer 20 records zijn dan kan je gewoon een derde maken en die 2 gewoon gaan overlopen en toevoegen. Als je met 1000'enden records bezig bent, dan zijn er misschien performantere mogelijkheden.
An Khayra 3.746
wzl-lid
Sinds 27/5/2004
T:5 - R:72
23/12/2004 - 13:16u | Quote
Ik heb het nu zo gedaan dat de twee recordsets afgelopen worden, en er wordt een derde gemaakt, dan verwijder ik de dubbels uit de gestorteerde derde recordset. Maar dat zijn minimum 3 lussen, dus 3*20 iteraties (bij 20 records). Het is wel generiek, en zit in een COM+ DLL ... het gaat (voorlopig) nog over relatief weinig records (1 tot 20).

Als er een functie zou bestaan in de zin van: rs.mergeWith(rs2 as adodb.recordset, distinct as boolean) zou dat natuurlijk beter zijn geweest, maar ik vind niks ...

Laatst aangepast door An Khayra op 23/12/2004 13:17:18u (1x aangepast)
Cassy 2.912
wzl-lid
Sinds 24/9/2004
T:4 - R:104
23/12/2004 - 14:33u | Quote
Kan je het samenvoegen en controleren op dubbels niet in 1 functie combineren, dan spaar je mijns inziens wel al tijd uit.
An Khayra 3.746
wzl-lid
Sinds 27/5/2004
T:5 - R:72
24/12/2004 - 10:08u | Quote
Geen slecht gedacht, maar ik ben niet zeker dat dat qua performance beter is. Dat zou ik een moeten bekijken met heel grote recordsets (1 miljoen records of zo).

Als je beide gelijktijdig wil doen, dan moet je ofwel
1. twee recordsets gelijktijdig aflopen, en vergelijken op welk punt je zit, met ingewikkelde code tot gevolg,
of 2. tijdens het aflopen van de tweede recordset ook de ontvangende recordset aflopen (wat enorm veel verplaatsingen van de cursor tot gevolg heeft omdat hij elke keer naar de laatste moet verspringen bij 'AddNew')

Maar, het zou wel sneller kunnen zijn, dat moet ik maar eens uittesten. Ik heb wel enkele tabellen met > 1 miljoen records ter beschikking, dus dat zou wel moeten lukken ...
 
Bovenaan pagina