From shamil at smsconsulting.spb.ru Tue Sep 1 00:48:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 09:48:18 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <4dd71a0c0908301447s1c1fc75cw1eac8e9761f2a50@mail.gmail.com> Message-ID: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 1 01:54:39 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 10:54:39 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> References: <006901ca2a21$702c01a0$508404e0$@spb.ru> <00a301ca2a60$97e5b080$c7b11180$@spb.ru> <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> Message-ID: <00cb01ca2ad1$150793b0$3f16bb10$@spb.ru> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 9:29 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have got a helping hand from Mike, Gustav and Doug who happened to be "Lucky Guys" (thank you guys!) - they have referred below sample working well "out of the box". This sample solution (in Mike's interpretation) is posted here: http://northwind.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26600#D ownloadId=81391 (~65KB) It can be used as a test to see if your system is "WCF Web Services Development Ready". It has now WCF web service reference set OK (as this reference setting happened on Mike's VS2008) but when I run it I'm getting runtime error: "The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state." I'm currently "digging further" trying to make this sample working on my system - here is some information I'm looking through: How to make sure you don't get WCF Faulted State Exception? http://stackoverflow.com/questions/530731/how-to-make-sure-you-dont-get-wcf- faulted-state-exception Avoiding Problems with the Using Statement http://msdn.microsoft.com/en-us/library/aa355056.aspx I will inform you on my further progress (if any). Thank you for your help. -- Shamil P.S. I haven't been "fighting" with this issue all the working day through, I was already in swimming pool with my kid etc. - yet this issue is one of the representative cases what make software development so "heavy" sometimes - the best/quickest solutions for such issues seems to be clean reinstalls of the systems, and having just latest release versions of MS software on that systems: still have to find time/resources to prepare something like that - this current case could be the "last drop"... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 1:57 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I'd be very grateful if anybody could go through the following sample/workthrough using VS2008 SP1 "How to Consume a Web Service" http://johnwsaundersiii.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c= BlogPart&partqs=amonth%3d5%26ayear%3d2009 (watch line wraps) and publish for download/send me privately the sources you'll get. I can't get this sample working on my system (something is still wrong with my system setup), and I wanted to compare your sources with the ones I'm getting here to find out how to solve this "nightmarish" issue. If all will work well it should take several minutes to make the sample working on your system assuming you have VS2008 SP1 and Windows SDK installed. Please do not try to look for workarounds if the above sample will not work out of the box as described - looking for such workaround can take hours and hours (and solution depends on your system (current) context/previous setups I believe) - you'll risk to lose your working day. Solution/workaround should be simple, effective and generic - I still can't find it nor by myself nor by intensive Googling/Binging. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 1 04:34:46 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 01 Sep 2009 11:34:46 +0200 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Message-ID: Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 06:52:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 15:52:53 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: References: Message-ID: <00db01ca2afa$be7268c0$3b573a40$@spb.ru> Hi Gustav, No, there is no other software running on this port: I have just changed IIS based WCF web service to use 59507 port, and then changed service reference in Mike's sample to consume this my local IIS WCF web service - and everything worked OK. Yes, I will try to monitor my PC IP Ports activity but I have to postpone that as I have got now a couple of project to develop. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 01, 2009 1:35 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:16:30 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:16:30 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Tue Sep 1 10:47:16 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 19:47:16 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4386 (20090901) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:53:26 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:53:26 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> Message-ID: There are some. The important thing is understanding that aspect of how ASP.Net works, which is why I said it's a good path to get familiar with classic asp first, before using the more powerful ASP.Net. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 10:47 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Wed Sep 2 13:38:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 22:38:40 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Message-ID: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 2 14:56:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 23:56:02 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application In-Reply-To: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001101ca2c07$678abfe0$36a03fa0$@spb.ru> Hi All, I have just found an interesting sample related to the subject or this thread as well as on WCF services one: "GeoNames .NET WCF Client" http://www.codeproject.com/KB/WCF/GeoNames-WCFClient.aspx Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 02, 2009 10:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Wed Sep 2 19:41:16 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Wed, 2 Sep 2009 20:41:16 -0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I have a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 04:53:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 3 Sep 2009 13:53:46 +0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Hi Mike, Thank you. Would that be correct assumption that using Mapstraction with OpenStreetMaps is free for commercial Web applications? And when my customer will get some "fat" it will be not that complicated to switch to GoogleMaps or other commercial GIS solution providers as Mapstraction provides good JavaScript abstraction layer? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:41 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I hae a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 07:57:53 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 08:57:53 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Message-ID: <86C0C6779099450D9E17241C79EF23DB@Mattys> Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 15:03:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 00:03:48 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application In-Reply-To: <86C0C6779099450D9E17241C79EF23DB@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> Message-ID: <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Hi Mike, OK. If I can "GET" Mapstraction with something else open source (read "free") to implement the referred below functionality then I'd try to "GIVE" back developed here free/open source DotNetNuke (DNN) module wrapping that functionality to be reused by others - would that be a "fair exchange"? :) Maybe I should ask it that way - do you know what provider Mapstraction talks to here: http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 I mean you mentioned that the above site's map navigation is developed using Mapstraction - maybe you know also what GIS data/API provider it's used there? The only functionality, which is needed here currently is: - to show a country map with regions/states; - highlight/show tooltip of region/state on mouse move; - zoom region/state when it's clicked by mouse; - highlight sub-regions (if any). Purchasing advanced commercial GIS systems for the above functionality is looking currently excessive here (for my customer). Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:58 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4392 (20090903) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 15:31:51 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 16:31:51 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From mmattys at rochester.rr.com Thu Sep 3 16:13:50 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 17:13:50 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> >>>> _______________________________________________ >>>> dba-VB mailing list >>>> dba-VB at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>>> http://www.databaseadvisors.com >>>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4392 (20090903) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006901ca2d22$dd1a3260$974e9720$@spb.ru> Hi Mike, Don't worry. No problem at all. Your remark is accepted here with pleasure. If you think I like open source that wouldn't be true :) But I have to accept that "open source software phenomena" as reality, and to find how to live with it with as little as possible "damage" to my own and other developers business. You know I started my development carrier when there was no yet that phenomena. Nowadays I'd probably not go into programming because of "corruption" of that profession introduced by open source. Although AFAIS the "greed" of commercial solutions' software shops together with rather low quality of many of that solutions especially in 1990-ies was one of the driving forces of the "open source software".... You convinced me - I'd try to use as little as possible open source software solutions - none will be ideal. And sharing experience as we're doing here and making sample solutions etc. - I'll continue doing that as this activity helps to learn new technologies, helps to minimize routine everyday work etc. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 1:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006a01ca2d22$dfb21b50$9f1651f0$@spb.ru> Hi Mike, OK, I will not do that. :) I will try to find some affordable commercial (or semi-commercial) solution, I will put it into DNN Module Envelope, and I will be selling my solution online for USD99-3USD00 - usual price for advanced commercial DNN modules. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 12:32 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 4 03:51:23 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 4 Sep 2009 09:51:23 +0100 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: <006901ca2d22$dd1a3260$974e9720$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Fri Sep 4 04:02:19 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 13:02:19 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: <007401ca2d3e$696242b0$3c26c810$@spb.ru> Hi Mark, Here is the info on GoogleMaps (API) usage in commercial applications - I have got it from Mike: <<< For External Applications (public facing sites or customer facing extranets) * $10,000 for 1 million page views per year * $20,000 for 2 million page views per year * $30,000 for 3 million page views per year * $40,000 for 5 million page views per year * Please call for pricing above 5 external million page views per year For Internal Applications (internal applications, non-customer facing) * $10,000 for 250K page views per year * $20,000 for 500K views per year * $30,000 for 750K page views per year * $40,000 for 1.5 million page views per year * Please call for pricing above 1.5 million internal page views per year FAQ How can I try out the Google Maps API? For development purpose you are authorized to use a Free Google Maps license key as an Enterprise License key for 30 days. This means that you are licensed to use Google Maps behind the firewall, in an internal application, or as part of paid or premium content for 30 days (e.g. the Enterprisefull licensing agreement). The 30 day free trial is still subject to a limit of 15,000 geocodes per day. To sign up for the key, please visit http://code.google.com/apis/maps/signup.html If you have already signed up for a key, please mark the date of this e-mail as the start of your 30 day free trial. >>> AFAIS GoogleMaps is not free - and if used from available on SnowCovered DNN modules one have to pay for both - a DNN module license and Google Maps API usage. Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen Sent: Friday, September 04, 2009 12:51 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 08:41:26 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 09:41:26 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> Message-ID: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com From jwcolby at colbyconsulting.com Fri Sep 4 09:35:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 10:35:29 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <4AA125B1.3000702@colbyconsulting.com> That is a rather steep fee schedule however. I find the fee difference interesting as well. Significantly more expensive for corporate usage than public. John W. Colby www.ColbyConsulting.com Mike Mattys wrote: > To be sure, Google is operating exactly as it should in this world > according to all that is taught in the 'best' ivy league business colleges > and the 'wisdom' of all financial programs on television. > > No one understands the consequences down the road. > > One doesn't observe the pharmaceutical companies adopting an open > source philosophy, either. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 5:02 AM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawinginASP.NETapplication > > >> Hi Mark, >> >> Here is the info on GoogleMaps (API) usage in commercial applications - I >> have got it from Mike: >> >> <<< >> For External Applications (public facing sites or customer facing >> extranets) >> * $10,000 for 1 million page views per year >> * $20,000 for 2 million page views per year >> * $30,000 for 3 million page views per year >> * $40,000 for 5 million page views per year >> * Please call for pricing above 5 external million page views per year >> >> For Internal Applications (internal applications, non-customer facing) >> * $10,000 for 250K page views per year >> * $20,000 for 500K views per year >> * $30,000 for 750K page views per year >> * $40,000 for 1.5 million page views per year >> * Please call for pricing above 1.5 million internal page views per year >> >> FAQ >> How can I try out the Google Maps API? >> For development purpose you are authorized to use a Free Google Maps >> license key as an Enterprise License key for 30 days. This means that >> you are licensed to use Google Maps behind the firewall, in an >> internal application, or as part of paid or premium content for 30 >> days (e.g. the Enterprisefull licensing agreement). The 30 day free >> trial is still subject to a limit of 15,000 geocodes per day. >> >> To sign up for the key, please visit >> http://code.google.com/apis/maps/signup.html >> If you have already >> signed up for a key, please mark the date of this e-mail as the start >> of your 30 day free trial. >> AFAIS GoogleMaps is not free - and if used from available on SnowCovered >> DNN >> modules one have to pay for both - a DNN module license and Google Maps >> API >> usage. >> >> Correct? >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen >> Sent: Friday, September 04, 2009 12:51 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Hello Shamil and Mike, >> Shamil, perhaps I am missing something here, but I would have assumed that >> you are free to use Google Maps for your application. Why can you not? >> Of >> did I miss something that you need a wrapper for Google maps? >> >> When I searched on SnowCovered I see plenty of Google Map providers, so I >> guess you must be looking for something else? >> >> thanks >> >> Mark >> >> >> >> 2009/9/4 Shamil Salakhetdinov >> >>> Hi Mike, >>> >>> Don't worry. >>> No problem at all. >>> Your remark is accepted here with pleasure. >>> If you think I like open source that wouldn't be true :) >>> But I have to accept that "open source software phenomena" as reality, >>> and >>> to find how to live with it with as little as possible "damage" to my own >>> and other developers business. You know I started my development carrier >>> when there was no yet that phenomena. Nowadays I'd probably not go into >>> programming because of "corruption" of that profession introduced by open >>> source. Although AFAIS the "greed" of commercial solutions' software >>> shops >>> together with rather low quality of many of that solutions especially in >>> 1990-ies was one of the driving forces of the "open source software".... >>> >>> You convinced me - I'd try to use as little as possible open source >>> software >>> solutions - none will be ideal. >>> >>> And sharing experience as we're doing here and making sample solutions >> etc. >>> - I'll continue doing that as this activity helps to learn new >>> technologies, >>> helps to minimize routine everyday work etc. >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Friday, September 04, 2009 1:14 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> Shamil, >>> >>> I wasn't trying to be rude, I really don't understand >>> the Open-Source thing. >>> >>> Really. >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Mike Mattys" >>> To: "Discussion concerning Visual Basic and related programming issues." >>> >>> Sent: Thursday, September 03, 2009 4:31 PM >>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> >>>> Shamil, >>>> >>>> Doesn't it simply mean that you'll put a lot of web mapping >>>> programmers in a lower income bracket and only big companies >>>> will benefit? >>>> >>>> - >>>> Michael R Mattys >>>> MapPoint and Database Dev >>>> www.mattysconsulting.com >>>> - >>>> ----- Original Message ----- >>>> From: "Shamil Salakhetdinov" >>>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>>> >>>> Sent: Thursday, September 03, 2009 4:03 PM >>>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>>> objectspresentation/drawing inASP.NETapplication >>>> >>>> >>>>> Hi Mike, >>>>> >>>>> OK. If I can "GET" Mapstraction with something else open source (read >>>>> "free") to implement the referred below functionality then I'd try to >>>>> "GIVE" >>>>> back developed here free/open source DotNetNuke (DNN) module wrapping >>>>> that >>>>> functionality to be reused by others - would that be a "fair >>>>> exchange"? >>>>> :) >>>>> >>>>> Maybe I should ask it that way - do you know what provider >>>>> Mapstraction >>>>> talks to here: >>>>> >>>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >>>>> >>>>> I mean you mentioned that the above site's map navigation is developed >>>>> using >>>>> Mapstraction - maybe you know also what GIS data/API provider it's >>>>> used >>>>> there? >>>>> >>>>> The only functionality, which is needed here currently is: >>>>> >>>>> - to show a country map with regions/states; >>>>> - highlight/show tooltip of region/state on mouse move; >>>>> - zoom region/state when it's clicked by mouse; >>>>> - highlight sub-regions (if any). >>>>> >>>>> Purchasing advanced commercial GIS systems for the above functionality >>> is >>>>> looking currently excessive here (for my customer). >>>>> >>>>> Thank you. >>>>> >>>>> -- >>>>> Shamil >>>>> >>>>> -----Original Message----- >>>>> From: dba-vb-bounces at databaseadvisors.com >>>>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>>>> Sent: Thursday, September 03, 2009 4:58 PM >>>>> To: Discussion concerning Visual Basic and related programming issues. >>>>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>>>> objectspresentation/drawing inASP.NET application >>>>> >>>>> Shamil, >>>>> >>>>> I can't be quoted as an authority on this because I don't really >>>>> understand "open source" in a world based upon "GET" instead >>>>> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >>>>> >>>>> However, It appears that OSM is free but Mapstraction does not yet >>>>> 'talk' with OpenStreetMaps. They are planning to do so. >>>>> >>>>> Then again, they seem to be asking for participation in the project >>>>> ... >>>>> >>>>> - >>>>> Michael R Mattys >>>>> MapPoint and Database Dev >>>>> www.mattysconsulting.com > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 4 10:07:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 11:07:16 -0400 Subject: [dba-VB] Developing an application for sale? Message-ID: <4AA12D24.3020508@colbyconsulting.com> I found this today. http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx I am looking at starting a business with a current client to design and sell a product. In particular look at this which is a program description: http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf If you are seriously developing an application, if you are a "startup" or can become one, this program will provide you with the top end development products as well as server OS etc. I will be talking to my potential partner about this. -- John W. Colby www.ColbyConsulting.com From mmattys at rochester.rr.com Fri Sep 4 11:15:59 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 12:15:59 -0400 Subject: [dba-VB] Developing an application for sale? References: <4AA12D24.3020508@colbyconsulting.com> Message-ID: <0FCC1CA012AA479C8803DD1BB96B7F99@Mattys> Very interesting. Thanks, John - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" ; "VBA" Sent: Friday, September 04, 2009 11:07 AM Subject: [dba-VB] Developing an application for sale? >I found this today. > > http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx > > I am looking at starting a business with a current client to design and > sell a product. In > particular look at this which is a program description: > > http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf > > If you are seriously developing an application, if you are a "startup" or > can become one, this > program will provide you with the top end development products as well as > server OS etc. > > I will be talking to my potential partner about this. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 11:26:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 20:26:00 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Hi Mike, It looks like GoogleMaps API (not Premier version) can be used for free even on commercial web sites with some limitations and my customer business should fit them: <<< http://code.google.com/intl/en/apis/maps/faq.html Can I use the Google Maps API on a commercial website? As long as your site is generally accessible to consumers without charge, you may use the Google Maps API. For example, if your website is supported by advertising, it likely falls within the Google Maps API Terms of Service. If you charge people to place information on your map (e.g. to list their homes for sale), but you display this information using the Google Maps API on a free part of your site, you'll also meet the Google Maps API Terms of Service. However, not all commercial uses are allowed. If your site meets any of the following criteria you must use Google Maps API Premier: * Your site is only available to paying customers. * Your site is only accessible within your company or on your intranet. Remember, Google reserves the right to suspend or terminate your use of the Google Maps API at any time, so please ensure that you read the Terms of Service carefully. >>> Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 5:41 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4396 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 15:38:56 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:38:56 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys> <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: Shamil, I think that as long as you're not charging by some measure of transactions and the site is publicly available that you'll be able to duplicate the site you showed us without being terminated by Google. It would be best to check with them, of course. If I can be of more assistance, please let me know. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 12:26 PM Subject: Re: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Hi Mike, > > It looks like GoogleMaps API (not Premier version) can be used for free > even > on commercial web sites with some limitations and my customer business > should fit them: > > <<< > http://code.google.com/intl/en/apis/maps/faq.html > > Can I use the Google Maps API on a commercial website? > > As long as your site is generally accessible to consumers without > charge, you may use the Google Maps API. For example, if your website is > supported by advertising, it likely falls within the Google Maps API Terms > of Service. If you charge people to place information on your map (e.g. to > list their homes for sale), but you display this information using the > Google Maps API on a free part of your site, you'll also meet the Google > Maps API Terms of Service. > > However, not all commercial uses are allowed. If your site meets any of > the following criteria you must use Google Maps API Premier: > > * Your site is only available to paying customers. > * Your site is only accessible within your company or on your > intranet. > > Remember, Google reserves the right to suspend or terminate your use of > the Google Maps API at any time, so please ensure that you read the Terms > of > Service carefully. >>>> > > Correct? > > Thank you. > > -- > Shamil From mmattys at rochester.rr.com Fri Sep 4 15:54:54 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:54:54 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys><007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: <670A61C34ECF434A80325BD4FF027FDA@Mattys> Shamil, A second opinion from here was: "Yeah, they're going to charge." Reasoning: If you're going to receive income from it, you're going to pay. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Friday, September 04, 2009 4:38 PM Subject: Re: [dba-VB]Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Shamil, > > I think that as long as you're not charging by some measure > of transactions and the site is publicly available that you'll > be able to duplicate the site you showed us without being > terminated by Google. > > It would be best to check with them, of course. > If I can be of more assistance, please let me know. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 12:26 PM > Subject: Re: [dba-VB] > Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > > >> Hi Mike, >> >> It looks like GoogleMaps API (not Premier version) can be used for free >> even >> on commercial web sites with some limitations and my customer business >> should fit them: >> >> <<< >> http://code.google.com/intl/en/apis/maps/faq.html >> >> Can I use the Google Maps API on a commercial website? >> >> As long as your site is generally accessible to consumers without >> charge, you may use the Google Maps API. For example, if your website is >> supported by advertising, it likely falls within the Google Maps API >> Terms >> of Service. If you charge people to place information on your map (e.g. >> to >> list their homes for sale), but you display this information using the >> Google Maps API on a free part of your site, you'll also meet the Google >> Maps API Terms of Service. >> >> However, not all commercial uses are allowed. If your site meets any >> of >> the following criteria you must use Google Maps API Premier: >> >> * Your site is only available to paying customers. >> * Your site is only accessible within your company or on your >> intranet. >> >> Remember, Google reserves the right to suspend or terminate your use >> of >> the Google Maps API at any time, so please ensure that you read the Terms >> of >> Service carefully. >>>>> >> >> Correct? >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Mon Sep 7 10:33:56 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 7 Sep 2009 19:33:56 +0400 Subject: [dba-VB] FYI: Learn Lean Software Development and Kanban Systems Message-ID: <001f01ca2fd0$a0f6eac0$e2e4c040$@spb.ru> Hi All, Here is a good collection of links on subject: "Learn Lean Software Development and Kanban Systems" http://johnnycoder.com/blog/2009/08/26/learn-lean-software-development-and-k anban-systems/ Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 02:57:01 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 11:57:01 +0400 Subject: [dba-VB] DotNetNuke: custom forms, map navigation/geocoding, AJAX... Message-ID: <003d01ca3059$f3c46f00$db4d4d00$@spb.ru> Hi All, It looks like I have finally found advanced samples of DNN web apps - have a look: Rechercher sur carte http://www.frantsia.ru/nedvijimost/fr/ Interactive Map http://www.camposdenijar.com/ToDO/InteractiveMap/tabid/88/Default.aspx AFAIUK one of DNN generic modules used here is XMod: http://dnndev.com/Default.aspx?tabid=213 Do you know what other modules/techniques are used to develop interactive web page here: http://www.frantsia.ru/nedvijimost/fr/ Thank you. --Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 03:59:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 12:59:53 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Message-ID: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Hi All, Additionally to my previous message - FYI - here are amazing DNN related stuff/development tools - amazing at least for me - I must say I have never seen something like that made using DNN: http://dnnprofessor.com/Home.aspx Enjoy! --Shamil P.S. The mentioned above stuff is not free but its price is also amazing - amazingly low IMO: From max.wanadoo at gmail.com Tue Sep 8 05:16:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 11:16:51 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 8 05:46:49 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 14:46:49 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 11:34:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 17:34:06 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Message-ID: <4aa68798.13125e0a.04fe.4f39@mx.google.com> I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 12:14:03 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 21:14:03 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa68798.13125e0a.04fe.4f39@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> Message-ID: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 12:38:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 18:38:54 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Message-ID: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 13:13:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 22:13:18 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> Message-ID: <000c01ca30b0$0c51b860$24f52920$@spb.ru> Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 13:27:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 19:27:02 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000c01ca30b0$0c51b860$24f52920$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> Message-ID: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 14:12:34 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 23:12:34 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> Message-ID: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > From max.wanadoo at gmail.com Tue Sep 8 14:24:15 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 20:24:15 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Message-ID: <4aa6af8d.26015a0a.7fde.ffff9d5b@mx.google.com> Shamil, Thanks for all that. I am going to run this past my colleague to see if this is something we can go with at work. Thanks very much for the info. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 20:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 15 07:26:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 Sep 2009 08:26:42 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK Message-ID: <4AAF8802.7020606@colbyconsulting.com> I ran across this today. I use Sync Toy to synchronize directories for various purposes - photos between the server and my laptop, backup files between the backup directory and an external drive etc. It seems that Sync Toy is a pretty face over a sync framework, which you can program to. http://msdn.microsoft.com/en-us/sync/bb887623.aspx http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Thu Sep 17 11:41:54 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 20:41:54 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime Message-ID: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil From cfoust at infostatsystems.com Thu Sep 17 12:01:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 17 Sep 2009 10:01:32 -0700 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Thu Sep 17 12:10:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:10:53 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: <00d101ca37b9$d1461930$73d24b90$@spb.ru> Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Thu Sep 17 12:48:35 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:48:35 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00d101ca37b9$d1461930$73d24b90$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> <00d101ca37b9$d1461930$73d24b90$@spb.ru> Message-ID: <00d201ca37bf$166501c0$432f0540$@spb.ru> Hi Charlotte and all, I have got the answer from other source that the value of BrowsableAttribute as well as of other attributes can't be set at runtime. Sorry, that was a wrong request of mine. Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:11 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 18 17:52:09 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 18 Sep 2009 23:52:09 +0100 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: <4AAF8802.7020606@colbyconsulting.com> References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: Hello John, FYI, since you prompted me a year or two ago to ensure I was backing up my home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in beta for over a year. I find it works perfect for me and I used it to keep my main pc synced to a external usb drive. I sync about 50 GB of files and all is fine. I am looking forward to clicking your links below., thanks Mark 2009/9/15 jwcolby > I ran across this today. I use Sync Toy to synchronize directories for > various purposes - photos > between the server and my laptop, backup files between the backup directory > and an external drive > etc. It seems that Sync Toy is a pretty face over a sync framework, which > you can program to. > > http://msdn.microsoft.com/en-us/sync/bb887623.aspx > > http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx > > http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx > > http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 18 19:29:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 18 Sep 2009 20:29:08 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: <4AB425D4.8020108@colbyconsulting.com> Mark, In fact I think 2.0 is now released. I am using it as well to sync a local directory to an external hard drive. It does work really well. The links are for programming with the Sync framework, the same thing that MS used to build SyncToy, but from inside of your C# or VB.net apps. John W. Colby www.ColbyConsulting.com Mark Breen wrote: > Hello John, > FYI, since you prompted me a year or two ago to ensure I was backing up my > home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in > beta for over a year. I find it works perfect for me and I used it to keep > my main pc synced to a external usb drive. I sync about 50 GB of files and > all is fine. > > I am looking forward to clicking your links below., > > thanks > > Mark > > > 2009/9/15 jwcolby > >> I ran across this today. I use Sync Toy to synchronize directories for >> various purposes - photos >> between the server and my laptop, backup files between the backup directory >> and an external drive >> etc. It seems that Sync Toy is a pretty face over a sync framework, which >> you can program to. >> >> http://msdn.microsoft.com/en-us/sync/bb887623.aspx >> >> http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx >> >> http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx >> >> http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Sat Sep 19 13:43:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 14:43:48 -0400 Subject: [dba-VB] c# - Monitor folder and run application Message-ID: <4AB52664.7060504@colbyconsulting.com> Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com From max.wanadoo at gmail.com Sat Sep 19 13:51:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 19 Sep 2009 19:51:23 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> JC, no code to hand, but as you say this is dead easy if run from a form. Set the Timer to the frequency. With the InTimer() Do a dir() to see if its there. End of heartache Waiting for my Lottery numbers to come up... Have you any code for that..I will swap... Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 19 September 2009 19:44 To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Sep 19 14:16:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 15:16:53 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> References: <4AB52664.7060504@colbyconsulting.com> <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> Message-ID: <4AB52E25.2010705@colbyconsulting.com> I looked at the monitor piece awhile back and it turns out there is an object in .Net that does the monitor for you. It even generates an event for new items in the dir IIRC. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, no code to hand, but as you say this is dead easy if run from a form. > Set the Timer to the frequency. > > With the InTimer() > Do a dir() to see if its there. > End of heartache > > Waiting for my Lottery numbers to come up... > > Have you any code for that..I will swap... > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 19 September 2009 19:44 > To: VBA > Subject: [dba-VB] c# - Monitor folder and run application > > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to > complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a > single solution. > > This doesn't appear too tough given all the code snipits out there but why > reinvent the wheel if you > have done it. > From stuart at lexacorp.com.pg Sat Sep 19 17:14:56 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 20 Sep 2009 08:14:56 +1000 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4AB557E0.16460.E42B361@stuart.lexacorp.com.pg> You should use the WaitForSingleObject API call. I've got several examples in PowerBasic and VBA. which do things like monitor your browser cache and detect when cookies are added/changed but not in .Net. I'd guess that googling that call should turn up suitable examples in c#. -- Stuart On 19 Sep 2009 at 14:43, jwcolby wrote: > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a single solution. > > This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you > have done it. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Sep 19 21:05:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 22:05:41 -0400 Subject: [dba-VB] XML and class serialization Message-ID: <4AB58DF5.50204@colbyconsulting.com> In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com From jdthree at frontiernet.net Sun Sep 20 07:24:24 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Sun, 20 Sep 2009 08:24:24 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <001e01ca39ed$4a3e26e0$deba74a0$@net> Hello John et al, I've been away from coding for quite a while but I'm back into it again. John you're looking for the FileSystemWatcher in System.IO. I don't have any code for you but what you'll find if you Google it will get you what you need. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 2:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Sun Sep 20 09:39:32 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Sun, 20 Sep 2009 18:39:32 +0400 Subject: [dba-VB] XML and class serialization In-Reply-To: <4AB58DF5.50204@colbyconsulting.com> References: <4AB58DF5.50204@colbyconsulting.com> Message-ID: <006c01ca3a00$2ef946e0$8cebd4a0$@spb.ru> Hi John, What "HUGE overhead" do you mean? Do you mean XML file size? BTW, you can try to serialize collections' and objects' into binary http://www.java2s.com/Code/CSharp/File-Stream/CSerialization.htm and JSON http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-Data ContractJsonSerializer.aspx files/strings. As for XML processing in memory - it is very effective and is "out-of-the-.NET-box" - I suppose that in memory XML files are stored very "tightly packed" without any overheads - they (I guess) are more like hierarchical in memory databases (remember IMS?) than plain files IOW in memory XML processing using XPATH etc. could(/should?) work quicker than SQL processing of loaded in memory relational databases... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, September 20, 2009 6:06 AM To: Access Developers discussion and problem solving; VBA Subject: [dba-VB] XML and class serialization In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4441 (20090919) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Mon Sep 21 08:42:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 09:42:13 -0400 Subject: [dba-VB] C# get project directory Message-ID: <4AB782B5.2010306@colbyconsulting.com> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Mon Sep 21 09:28:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 21 Sep 2009 18:28:46 +0400 Subject: [dba-VB] C# get project directory In-Reply-To: <4AB782B5.2010306@colbyconsulting.com> References: <4AB782B5.2010306@colbyconsulting.com> Message-ID: <009c01ca3ac7$d825a890$8870f9b0$@spb.ru> Hi John, Will that work for you?: string appFullPath = Application.ExecutablePath; string appFolder = System.IO.Path.GetDirectoryName(appFullPath); System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(appFolder); Console.WriteLine(folder.Parent.Parent.Parent.FullName); BTW, if you're planning to have your (sample) application easily deployed using XCOPY then it's better to not use the above approach as it assumes that your executable will have "some useful stuff" three levels up in the directory tree - you'd better use assumption that your app has "some useful stuff" in predefined (sub-)...sub-directories relative to the executable's directory. I usually create a \Bin folder under solution's folder - that will be E:\C# Projects\Grade Calculator\Bin for your case and I set both Debug and Release mode executables built in this folder (Solutions Explorer->Project->Right-Click->Properties->Build->Output Path). Then all "useful stuff" can be placed in custom \Bin folder (E:\C# Projects\Grade Calculator\Bin) and its subfolders, and XCOPY deployment will always work OK. I'd also note that you use Application object to get exe fullpath - that works by default for WinForms apps but is unavailable in console and other types of apps by default: yes, you can set a reference to System.Windows.Forms in console application but that would be an overkill - I usually use this function: public static string ExecutingAssemblyFullPath { get { Assembly asm = Assembly.GetExecutingAssembly(); AssemblyName origCodebase = asm.GetName(false); string codeBase = origCodebase.CodeBase; if (codeBase.StartsWith(@"file:///") || codeBase.StartsWith(@"file:\\\")) codeBase = codeBase.Substring(8); return codeBase; } } I have got made it quite some time ago, and it always work well, although there could be even better/shorter solution now... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 5:42 PM To: VBA Subject: [dba-VB] C# get project directory I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4442 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4443 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Mon Sep 21 09:48:38 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 16:48:38 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Another method with strings only is a bit long winded: string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; or - applying a bit of the good old DOS syntax: string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 10:02:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 11:02:27 -0400 Subject: [dba-VB] C# get project directory In-Reply-To: References: Message-ID: <4AB79583.50009@colbyconsulting.com> Gustav, I was hoping to find a property of some object that told me the solution base directory. It SEEMS SO LOGICAL. Sigh. I have every intention of creating a directory of my own to hold some files that this thing will create. I just want that directory to be portable (change with the location of the solution) and as close to the base solution path as possible. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. Thanks for this solution. It definitely should work. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Another method with strings only is a bit long winded: > > string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; > > or - applying a bit of the good old DOS syntax: > > string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; > > For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: > > string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); > > /gustav > > >>>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> > I want to set up a directory to store files directly under the project directory. I can get the exe > directory using Application.ExecutablePath but that is clear down in the bin directory etc. > > I want THIS path: > > E:\C# Projects\Grade Calculator <<<<< > > I have Googled till I am blue in the face and all I end up with is (where the exe is): > > D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug > > Any help appreciated. > > Thanks, > From Gustav at cactus.dk Mon Sep 21 10:27:47 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 17:27:47 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Oh, you get used to it. It has the advantage(?) too, that when you switch VS from Debug mode to Release mode, your app path follows. /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 17:02:27 >>> .. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. From jwcolby at colbyconsulting.com Mon Sep 21 12:46:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 13:46:08 -0400 Subject: [dba-VB] Merge rows Message-ID: <4AB7BBE0.6030807@colbyconsulting.com> My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From andy at minstersystems.co.uk Mon Sep 21 13:41:44 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 21 Sep 2009 19:41:44 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7BBE0.6030807@colbyconsulting.com> Message-ID: <44483FF525534000830F5F5010D5B73E@MINSTER> Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 14:10:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 14:10:09 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <4AB7BBE0.6030807@colbyconsulting.com> <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <893A33B2B6104479894E1266CAF81871@danwaters> I'd stick with a single preference for a car or a drink, but for women you'll need a subtable. Hope this helps! Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Monday, September 21, 2009 1:42 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Merge rows Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 15:51:46 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 15:51:46 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <893A33B2B6104479894E1266CAF81871@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> Message-ID: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> This is a tough question - not technically difficult but what's tough is actually making the choice! I think you'll need to get some guidance from your customer as to which single record to keep (the latest one?), or should you put the contents of all the related cells into one cell and delete the other rows? Or something else? This probably doesn't help . . . Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 16:37:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:37:41 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <4AB7F225.8010703@colbyconsulting.com> ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > From max.wanadoo at gmail.com Mon Sep 21 16:39:58 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 22:39:58 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F225.8010703@colbyconsulting.com> References: <44483FF525534000830F5F5010D5B73E@MINSTER> <4AB7F225.8010703@colbyconsulting.com> Message-ID: <4ab7f2ec.0a1ad00a.5698.26d3@mx.google.com> Well that's sorted then...give up the wife! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:38 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 16:54:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:54:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> Message-ID: <4AB7F632.5020803@colbyconsulting.com> Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan From DWUTKA at Marlow.com Mon Sep 21 17:01:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 21 Sep 2009 17:01:22 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> Message-ID: Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Mon Sep 21 17:04:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:04:56 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Are you saying that the FIRST JohnColby record you encounter is therefore the MASTER and the rest JohnColby record's data gets to update the MASTER? So, Rec 1. John Colby likes Fish (at the time he might have liked fish) Rec 2. John Colby does not like fish (might have been asked some time later, after a bad meal) Which takes precedence? Do you NOT overwrite existing data. Or DO you ? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:55 To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Sep 21 17:11:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:11:49 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Sep 21 17:18:13 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 21 Sep 2009 15:18:13 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: Merging them into one flat John Colby record is truly ugly, John. Why not separate them into a polls table (unless, of course, that's where you have them already) and use the John Colby record PK to connect them? Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 2:55 PM To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 17:31:20 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:31:20 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Message-ID: <4AB7FEB8.6080403@colbyconsulting.com> > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max From jwcolby at colbyconsulting.com Mon Sep 21 17:35:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:35:51 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4AB7FFC7.5080605@colbyconsulting.com> Well, the issue is that the client wants to do things like: Give me 5 million records where the income is in this range, has kids in this age range, has a dog and exercises. Now... You have two john colby records. The "exercises" info is in the first record, and the "has a dog" is in the second record. You just dropped John Colby from the selection because the AND failed. It would have succeeded had all the data been in one record. Essentially this table IS a Polls table. Someone just consolidated a ton of poll info into 640 fields a long time ago. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Merging them into one flat John Colby record is truly ugly, John. Why > not separate them into a polls table (unless, of course, that's where > you have them already) and use the John Colby record PK to connect them? > > Charlotte Foust > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, September 21, 2009 2:55 PM > To: dwaters at usinternet.com; Discussion concerning Visual Basic and > related programming issues. > Subject: Re: [dba-VB] Merge rows > > Dan, > > In fact there are 50 million records in the table (though not that many > "duplicates") so there is no "making a decision". Basically I have to > take row one and update it with row 2, 3, 4... Delete row 2,3,4... > > This is basically a table of "polls" that people have taken, with ~600 > fields where there may or may not be information about doing, wanting or > having that thing. Everything from information about the boat you own > to the electronics you own, to the medicine you take, whether you own a > dog or cat, hunt, fish etc. In order to get in the database you have to > have volunteered the information somewhere along the line. But you > might have taken several different polls at different times. > Thus one record might have the electronics you own, another the medicine > you take, and you don't even own a boat so those fields contain nothing. > > Like that. > > I just want to take all the John Colby records and merge them into a > single John Colby record, deleting all the extras when I am done. > > Of course this is one reason for my other question about getting rid of > any fields where there is no information in any record. If I am going > to process 50 million records, it would be good to not have to process > any fields where there is no info to merge. > > The other reason for the other question is that doing a table scan > against 50 million records with 640 fields is just plain going to take > longer than a table scan against 50 million records with only 400 > fields. It comes down to a matter of disk sectors to load. And with > 640 fields you cannot have indexes against all of them, so you are going > to be doing table scans. > > I just did a test where I did a Count() where... on a non-indexed field > and it took 1:18. So just doing these counts on all 640 fields could > take awhile. I will be counting and logging the count in my data > dictionary table. > > And off we go... > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 21 17:45:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:45:48 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FEB8.6080403@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> <4AB7FEB8.6080403@colbyconsulting.com> Message-ID: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Well, better brains then me will come up with the answer (are you there, Charlotte). What I would do is 1. Add an AutoNum field to the table - let that run overnight. This is good, as well you know. And you can make use of this from this point on. 2. set up the find-dupes wizard based on the natural key (!). 3. Extract the code from this. 4. put it into a module so that only those duplicate records are selected in a recordset 5. loop through the recordset. 6. do a secondary recordset based on the natural key where the autonum is not the same as the main record being looked at. 7. loop through the secondary records if found 8. update the main record. 9. delete the secondary record 10. move to next secondary record until none are left. 11. go to next main record. Now, I am not saying that is the most efficient. You may be able to do all this in an SQL statement. But, hey! At least I am trying to help. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 23:31 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Sep 21 17:55:29 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 22 Sep 2009 08:55:29 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Message-ID: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Mon Sep 21 17:59:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:59:37 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> Message-ID: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> 50 Million! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 21 September 2009 23:55 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 20:19:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 21:19:08 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> Message-ID: <4AB8260C.7090402@colbyconsulting.com> Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > From shamil at smsconsulting.spb.ru Tue Sep 22 01:59:47 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 10:59:47 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8260C.7090402@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> Message-ID: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Hi John, 3.086 million records seems to be manageable to be "deduped" in one go provided the source 50 million records table is already prepared. For "deduping" you can use 1. One stored procedure which: a) will insert new individual attributes' record and b) will update not null values for existing individual attributes' record. 2. One C#/VB.NET function to get records from the source 50 million records' table and to "feed" the above stored procedure. That's a rough plan. Of course developing SP with 640 parameters and C#/VB.NET code working with that SP is not an easy manual work - that SP and code could be generated. Not sure yet here that SP can have 640 parameters therefore it may be needed to have several SPs. To get source rows a T-SQL select expression with ROW_NUMBER() function should be used to have relatively small subsets of record batches to process. This selection can be done using multi-threaded C#/VB.Net code . Do you have any index over source 50 million rows table? - ROW_NUMBER() function will need such an index (I'm talking MS SQL 2005 here, maybe in MS SQL 2008 ROW_NUMBER() can be used without any indexes)... When source data deduped into ~3.086 million records table then that "small" table can get a few the most selective columns' indexes, and probably one compound natural key clustered index built using the most selective (/the most often used in queries) columns. If there are a few such columns at least one of which is used in all the queries then your application response time should be finally measured in seconds... I hope... That's basically it. Please correct me if you suppose that the above plan can't be fulfilled because of some reasons I'm missing here. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4445 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 22 03:09:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 22 Sep 2009 10:09:37 +0200 Subject: [dba-VB] Merge rows (now: seriously OT) Message-ID: So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... From jwcolby at colbyconsulting.com Tue Sep 22 07:13:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:13:07 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8BF53.70902@colbyconsulting.com> Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4445 (20090921) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 07:20:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:20:59 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8C12B.2040406@colbyconsulting.com> I think you are right in most regards. Copying all of the dupes out to a new table for deduping is definitely a must. After that I think it will be a case of iterating the recordset grabbing sets of dupe records, updating, deleting the duplicates, moving on. In fact perhaps even updating out to a second table, i.e. read from one write to another. The destination table will hold the resulting deduped recordset. As I mentioned in a previous email, the string length limitation will force me to process subsets of fields at a time. I also have to log all of the records being deleted so that I can delete those records back in my original source table. At least this kind of puzzle is fun to me. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil From max.wanadoo at gmail.com Tue Sep 22 08:04:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:04:35 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8C12B.2040406@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: JC, I dont understand what strings you are manipulating...I am confused by the seemingly conflicting postings. Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a value of true/false or is the fieldname = "Fld1" and the contents "Has Dog"? Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. If the recordsource is index on key and accessed in that order, then you have only to store the previous entry and change it as the recname changes. max On 22/09/2009, jwcolby wrote: > I think you are right in most regards. Copying all of the dupes out to a > new table for deduping is > definitely a must. After that I think it will be a case of iterating the > recordset grabbing sets of > dupe records, updating, deleting the duplicates, moving on. In fact perhaps > even updating out to a > second table, i.e. read from one write to another. The destination table > will hold the resulting > deduped recordset. > > As I mentioned in a previous email, the string length limitation will force > me to process subsets of > fields at a time. > > I also have to log all of the records being deleted so that I can delete > those records back in my > original source table. > > At least this kind of puzzle is fun to me. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million >> records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working >> with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be >> needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . >> Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in >> MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that >> "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application >> response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 08:24:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 09:24:59 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: <4AB8D02B.8070508@colbyconsulting.com> Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 08:31:09 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:31:09 +0100 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: On the contrary, it looks very simple to do in code, but i dont know about creating a complex sql string like that, if it gets that complicated I just do it in code - maybe a tad slower but what the heck, do something else and just let it run. strip some records into an mdb and email me if you want. max On 22/09/2009, jwcolby wrote: > Max, > > > JC, I don't understand what strings you are manipulating... > > In order to do this you (or at least I) pretty much have to use dynamic > queries. Create a string > variable, then build up the update SQL statement. That SQL string cannot be > more than 4K long IIRC. > > Well imagine 640 fields with field names like (a real field name) > > "medication_taken_for_adhd_adderall" or > "receive_info_on_health_related_bladder_control". > > Obviously the SQL string is going to get lengthy! > > > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a > value of true/false > > Yes, generally the field contains a 'Y' or an empty string ''. In some > cases (rare) the field has > various codes or numbers. For example there is a field for income with > codes '1' through 'T' with > each one being an income band of $5K. > > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with > subsequent JCRecords as you previously indicated. > > Yes, except you can't just "overwrite it", you have to update it IF there is > data in the next record. > > Two records > > Has_Dog, Has_Cat, Boat_Length > 'Y','','' > '','','42' > > If you simply "overwrite" the first with the second then you lose the fact > that the person has a dog > because you overwrote that field in the first record with an empty string > from the second record. > > EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If > so then update the first > record with the actual data containing field from the second record. But do > NOT update the fields > where the second record does not contain data. > > It starts to look more complex eh? > > Additionally, once this "merge" is done, all the records containing "merged > data" have to be > retained. All the records which were merged in to other records have to be > deleted. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> JC, I dont understand what strings you are manipulating...I am >> confused by the seemingly conflicting postings. >> Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a >> value of true/false >> >> or is the fieldname = "Fld1" and the contents "Has Dog"? >> >> Also, if the first JCRecord is going to be the master, then just >> overwrite the contents with subsequent JCRecords as you previously >> indicated. If the recordsource is index on key and accessed in that >> order, then you have only to store the previous entry and change it as >> the recname changes. >> >> max >> >> >> On 22/09/2009, jwcolby wrote: >>> I think you are right in most regards. Copying all of the dupes out to a >>> new table for deduping is >>> definitely a must. After that I think it will be a case of iterating the >>> recordset grabbing sets of >>> dupe records, updating, deleting the duplicates, moving on. In fact >>> perhaps >>> even updating out to a >>> second table, i.e. read from one write to another. The destination table >>> will hold the resulting >>> deduped recordset. >>> >>> As I mentioned in a previous email, the string length limitation will >>> force >>> me to process subsets of >>> fields at a time. >>> >>> I also have to log all of the records being deleted so that I can delete >>> those records back in my >>> original source table. >>> >>> At least this kind of puzzle is fun to me. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Shamil Salakhetdinov wrote: >>>> Hi John, >>>> >>>> 3.086 million records seems to be manageable to be "deduped" in one go >>>> provided the source 50 million records table is already prepared. >>>> >>>> For "deduping" you can use >>>> >>>> 1. One stored procedure which: >>>> a) will insert new individual attributes' record and >>>> b) will update not null values for existing individual attributes' >>>> record. >>>> >>>> 2. One C#/VB.NET function to get records from the source 50 million >>>> records' >>>> table and to "feed" the above stored procedure. >>>> >>>> That's a rough plan. >>>> >>>> Of course developing SP with 640 parameters and C#/VB.NET code working >>>> with >>>> that SP is not an easy manual work - that SP and code could be >>>> generated. >>>> >>>> Not sure yet here that SP can have 640 parameters therefore it may be >>>> needed >>>> to have several SPs. >>>> >>>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>>> should be used to have relatively small subsets of record batches to >>>> process. This selection can be done using multi-threaded C#/VB.Net code >>>> . >>>> Do >>>> you have any index over source 50 million rows table? - ROW_NUMBER() >>>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>>> MS >>>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>>> >>>> When source data deduped into ~3.086 million records table then that >>>> "small" >>>> table can get a few the most selective columns' indexes, and probably >>>> one >>>> compound natural key clustered index built using the most selective >>>> (/the >>>> most often used in queries) columns. If there are a few such columns at >>>> least one of which is used in all the queries then your application >>>> response >>>> time should be finally measured in seconds... I hope... >>>> >>>> That's basically it. >>>> >>>> Please correct me if you suppose that the above plan can't be fulfilled >>>> because of some reasons I'm missing here. >>>> >>>> Thank you. >>>> >>>> >>>> -- >>>> Shamil >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 08:36:28 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 17:36:28 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8BF53.70902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> Message-ID: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Hi John, OK, but in proposed solution there is no need to "string together 640 fields". Or do you mean that one static(/statically compiled) T-SQL statement has some limitations? Then you can make a view with two chars length of column names. <<< the client wants to ADD more fields. >>> Well, then you can create extension table for new fields. BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query your database. I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle such a table with 640 fields. Can you publish this table structure plus say 100 records with cleaned-up or hashed name, address, phone and other personal information? Thank you. -- Shamil P.S. <<< This is truly a database from hell. >>> Yes. Some people supposes that all the computing technology is coming directly from the Hell - they promise a lot but they take even more out - your life... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 4:13 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > From drawbridgej at sympatico.ca Tue Sep 22 08:57:50 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 09:57:50 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FFC7.5080605@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: John, For clarity, how do you identify a specific John Colby? OK so may be there is only 1 John Colby, but how would you distinguish (and with what certainty) to Tom Smith's for example. Is there some defined population of individuals that get polled and repolled? Jack From jwcolby at colbyconsulting.com Tue Sep 22 09:00:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:00:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Message-ID: <4AB8D871.6060001@colbyconsulting.com> Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 09:10:29 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:10:29 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Hi John, I suppose you can use static (compiled) SP - I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Procedure MySP ( @firstName nvarchar(50), @lastName nvarchar(50), --- @f1 int, ... @fn nvarchar(80) ) set nocount on declare @testCount int select @testCount = count(*) from MyTable where FirstName = @firstName and LastName = @lastName if (@testCount = 0) begin -- insert End else begin update myTable set f1 = IsNull(@f1, f1), ... fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end where FirstName = @firstName and LastName = @lastName end set nocount off Try. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:25 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil From shamil at smsconsulting.spb.ru Tue Sep 22 09:17:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:17:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <<< you lose the data in the first. >>> John, Our postings crossed - I have posted solution for the above issue in my recent posting. <<< that there will be 50 million records >>> But you say there are "just" 3+ millions when the data are "deduped" - that should be not a big issue for the joins on your mighty computers (BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:00 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 09:21:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:21:15 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: <4AB8DD5B.2050906@colbyconsulting.com> Jack, I was leaving that out to prevent obscuring the points I wanted to discuss. In fact what happened is that I received a text file, fixed width that contained all of this data in it. The file contained 65 million records that included fields for first name, last name, address, city, state, and zip. I loaded it into a table, with an autonumber PKID. I then pulled the name / address info out into a second table and ran it through the address validation program I have discussed in the past (virtual machines etc). That process causes 15 million records to fall out as undeliverable. 50 million records remained, the records we discuss here. So I have two tables, one with PK / name / address and the second with PK / poll information data. What I actually do to group the records is in the Address table is that I created a HashPerson field, binary(250). I then ran the first/last/addr/zip5/zip4 through a hash function (in SQL Server) which returned a repeatable unique number for each such string of data input. So now I have this hash field which contains exactly the same binary representation for every record with the same first/last/addr/zip5/zip4. So I can group on the HashPerson to count duplicates, I can select on HashPerson to get the PKIDs of all the records for a single person etc. Obviously I am not effectively dealing with issues like "Jack Colby" and "John Colby" at the same address. Same person, nicknames. I have not even attempted to do such things. Nor mis-spellings, minor variations in address etc. These things DO exist, but statistically they are such a small percentage of the total, and I had so much else to deal with, that it made no sense to go there yet. Maybe some day. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > John, > > For clarity, how do you identify a specific John Colby? OK so may be there > is only 1 John Colby, but how would you distinguish (and with what > certainty) to Tom Smith's for example. > Is there some defined population of individuals that get polled and > repolled? > Jack > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 09:29:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:29:37 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Message-ID: <4AB8DF51.1050106@colbyconsulting.com> >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil From fuller.artful at gmail.com Tue Sep 22 09:42:54 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 22 Sep 2009 10:42:54 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> That's almost exactly what I would propose, JC, with perhaps a small revision. I was thinking that you could use a pair of recordsets, the first consisting of the first and only the first record with value xxx, and the second consisting of all the other instances of xxx. Then you can skip through the second recordset and compare each record with the record in the first recordset, updating only the single record with data from the current row in the second recordset. The idea is to update only one record in each group. Once that is done, then you can select top 1 of each group and group by the identifier. A Select Into would give you only the first record from each group. You could trash or rename the large table and the target table created by the Select Into would contain only the rows of interest, It occurs to me that you could probably even generate the compare/update statements, since they will be almost identical save for the given fieldname. The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. hth, Arthur From cfoust at infostatsystems.com Tue Sep 22 09:45:22 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:45:22 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Hmmn ... If wiseGuy = 'Gustav' The Kill(wiseGuy) Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 22, 2009 1:10 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 09:52:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 15:52:36 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:51:00 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:51:00 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: John, I'm confused. Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records, perhaps in a union query, that contained both answer 1 and answer 2? Is the client wanting to query across polls, so that if the respondent answers answer1 in one poll and answer2 in another, they want to see that client? It sounds like totally meaningless information (not an uncommon request, in my experience). Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:00 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two > chars length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to > query your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework > handle such a table with 640 fields. Can you publish this table > structure plus say 100 records with cleaned-up or hashed name, > address, phone and other personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more > out - your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try > to string together 640 fields with long field names (and they are > loooong) you end up with an error message from SQL Server that the > string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one >> go provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code >> working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() >> function should be used to have relatively small subsets of record >> batches to process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe >> in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably >> one compound natural key clustered index built using the most >> selective (/the most often used in queries) columns. If there are a >> few such columns at least one of which is used in all the queries >> then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be >> fulfilled because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows >> 3.086 million individduals with multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 09:55:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:55:13 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> Message-ID: <4AB8E551.8050902@colbyconsulting.com> >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Tue Sep 22 09:59:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:59:51 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> Message-ID: <4AB8E667.6010707@colbyconsulting.com> Arthur > The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. And the answer is "nothing". There is no way to determine date order of these records, they simply did not have that data in the original records. Thus any answer is equally valid. Take the FIRST answer and keep it. Never update the first record FieldN if there is already data in that field. This data is full of incongruities like this. Income could rise or fall, children could leave home or die, spouse could divorce or die. We cannot discover any of this kind of thing. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's almost exactly what I would propose, JC, with perhaps a small > revision. I was thinking that you could use a pair of recordsets, the first > consisting of the first and only the first record with value xxx, and the > second consisting of all the other instances of xxx. Then you can skip > through the second recordset and compare each record with the record in the > first recordset, updating only the single record with data from the current > row in the second recordset. The idea is to update only one record in each > group. Once that is done, then you can select top 1 of each group and group > by the identifier. A Select Into would give you only the first record from > each group. You could trash or rename the large table and the target table > created by the Select Into would contain only the rows of interest, > It occurs to me that you could probably even generate the compare/update > statements, since they will be almost identical save for the given > fieldname. > > The only potential fly in the ointment that I can see is What to do if the > records being compared both contain values that do not match, i.e. A.Has_Dog > = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data > collections. > > hth, > Arthur > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:58:55 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:58:55 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Sep 22 10:01:51 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 22 Sep 2009 10:01:51 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Message-ID: With VB 6 yes. And I'm sure you could do something very similar in VB.Net or C#. It's just API calls. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, September 21, 2009 5:12 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] c# - Monitor folder and run application Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Sep 22 10:17:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 11:17:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4AB8EA7D.1080401@colbyconsulting.com> Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust From max.wanadoo at gmail.com Tue Sep 22 10:42:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:42:35 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> > Does that clarify it for you? It does, so really with the Tabs JIT you are not much better off. With my On-Demand approach, only data that is wanted there-and-now is loaded each time you navigate between records AND furthermore, I give them the option of a blank sub-form which means there is no extraneous data overhead when navigating unless the user wants it. I think my On-Demand approach is better for lots of reasons, but if your are happy with your JIT-Tabs approach then I am happy for you. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 22 September 2009 15:59 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 10:50:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:50:17 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4ab8f27c.0a04d00a.2c43.215f@mx.google.com> No you don't! Sheeesh! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 15:00 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <00de01ca3b9c$e8b0fa90$ba12efb0$@spb.ru> <<< then do the entire thing in memory, updating the first record with only "data containing fields" >>> John, I suppose that MS SQL is "smart enough" to do that "dirty work" for you - if you update a field with the same value it has in the case the updating value is NULL or (NULL or EMPTY string for char data) as it's done in SP I outlined then MS SQL will not make that field update at all... <<< Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. >>> ...you can do all that in one SP, which I have got outlined in my previous posting <<< This might be a good thing to do in C# to learn ADO stuff. >>> Yes, but that would be rather simple (although large because of 640 fields) function, which will use: SqlConnction, SqlCommand and SqlDataReader Remark: as I mentioned previously you can use ROW_NUMBER() T-SQL function to organize getting records' batches to be processed, say 1000 or at a time, and getting that batches can be made as a multi-threaded function... <<< Relatively speaking, this would no doubt FLY. >>> ...then it could fly, although I can't say for sure because "flying program" is a relative term heavily depending on one's point of view/experience :) --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:30 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8E551.8050902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> Message-ID: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <<< However the results should be ... satisfying. ;) >>> Yes, but for 3+ millions records your current system looks more than enough from here. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:55 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8EA7D.1080401@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> Message-ID: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <<< Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) ... The entire point is to make the process faster and faster and faster. >>> John, If you have many [has Kids], [HasCat], [HasDog] kind of fields you can consider combining them into bit array fields, for predefined range values you can make say half-byte groups bit array fields values... by thus minimizing the size of your table record... --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 22 11:09:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:09:59 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f719.0702d00a.6422.15b2@mx.google.com> Immer! LOL Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 22 September 2009 09:10 To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:14:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:14:07 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> Message-ID: <4AB8F7CF.9010304@colbyconsulting.com> Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max From jwcolby at colbyconsulting.com Tue Sep 22 11:16:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:16:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> Message-ID: <4AB8F87A.3090701@colbyconsulting.com> Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 11:30:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:30:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> Message-ID: <4AB8FBB0.3060904@colbyconsulting.com> This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil From max.wanadoo at gmail.com Tue Sep 22 11:29:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:29:54 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8F7CF.9010304@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> Message-ID: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> > With your approach leaving the subforms bound is difficult to say the least. As difficult as one line of code Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:14 To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 11:33:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 20:33:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8F87A.3090701@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <4AB8F87A.3090701@colbyconsulting.com> Message-ID: <00e601ca3ba2$5c221a40$14664ec0$@spb.ru> John, Yes, that is huge. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From drawbridgej at sympatico.ca Tue Sep 22 11:35:40 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 12:35:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <61CB308F5EE746B69904DD47CBF50795@AMDXP> My initial thought was bit fields also, until I saw boat_length and income identified by ranges. -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 12:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:39:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:39:37 -0400 Subject: [dba-VB] Counting data elements Message-ID: <4AB8FDC9.1090004@colbyconsulting.com> I am in the process of counting data elements in my database from hell fact table. It turns out there are 584 fields in the table. No indexes (I created a new table copy in a new database to do this stuff) and each field count is taking about 0:1:40. When I am done with this I will have a list of fields and the count of data elements in each field. The objective is to see if I can delete some of the fields because they contain no data elements. From reading the table definition spreadsheet I got from the client, I am reasonably certain that there are completely empty fields. Not sure how many. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 11:40:45 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:40:45 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> Message-ID: <4AB8FE0D.4010704@colbyconsulting.com> Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 12:03:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 13:03:50 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <61CB308F5EE746B69904DD47CBF50795@AMDXP> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <61CB308F5EE746B69904DD47CBF50795@AMDXP> Message-ID: <4AB90376.2040103@colbyconsulting.com> Yes, there are fields with real data in them. Mostly they are just Y or nothing. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > My initial thought was bit fields also, until I saw boat_length and income > identified by ranges. > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 12:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 13:35:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 19:35:03 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8FE0D.4010704@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> Message-ID: <4ab91918.1c05d00a.04a7.3583@mx.google.com> Only one sub form is loaded at any one time. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:41 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 14:03:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 23:03:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <00f401ca3bb7$676c1170$36443450$@spb.ru> John, You can use bitmask(/bitwise) operations - and you can use symbolic constants/variables for bits to not get "seriously nervuos". How many Boolean value fields do you have in your table? -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 14:20:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 15:20:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f401ca3bb7$676c1170$36443450$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> Message-ID: <4AB9239A.1010205@colbyconsulting.com> Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 15:15:13 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 00:15:13 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9239A.1010205@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> Message-ID: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - that will be BINARY(50) in T-SQL. Although I'm not currently sure you can implement bitwise logical operations solely using T-SQL: but I suppose you can get subset of data using non-Boolean where clause, and then scan it in C#/VB.NET and filter using bitwise C# operations/functions over bit arrays. Something like that should work I suppose. Please correct me if I'm wrong. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 11:21 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 15:22:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:22:16 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab91918.1c05d00a.04a7.3583@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> Message-ID: <4AB931F8.8010407@colbyconsulting.com> Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 15:25:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:25:06 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB932A2.6050301@colbyconsulting.com> Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: <00f601ca3bc8$62896570$279c3050$@spb.ru> Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB932A2.6050301@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> Message-ID: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> John, OK, someday you can make it working/flying using C# with your current DB size "shrinked" ~8 times and your current processing time shortened X times (to an order of magnitude? - wild guess)... ... but do not wait until you'll get fluent with C# - it's time consuming as everybody's experience shows - and it's not needed to get the outlined above results - just do it - how to do it seems to be clear now?... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 12:25 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 16:23:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 17:23:35 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> Message-ID: <4AB94057.3080704@colbyconsulting.com> Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Sep 22 16:48:02 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 07:48:02 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: > > John, > > > > You can use bitmask(/bitwise) operations - and you can use symbolic > > constants/variables for bits to not get "seriously nervuos". > > > > How many Boolean value fields do you have in your table? > > > > -- > > Shamil > > > > -----Original Message----- > > From: dba-vb-bounces at databaseadvisors.com > > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Tuesday, September 22, 2009 8:31 PM > > To: Discussion concerning Visual Basic and related programming issues. > > Subject: Re: [dba-VB] Merge rows > > > > This is an idea worthy of consideration. The problem is translating the > > client's original field > > name to a bit in the bit field when he sends me an order. > > > > The client has a spreadsheet of these fields and sends me orders with the > > field names (or more often > > a "record number" in the spreadsheet). I look down through the > spreadsheet > > to find the record > > number, translate that to the field name, then drop that field name into > the > > where clause of a query. > > > > It would be fascinating to have an already translated bit map of these > > fields, and able to do these > > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > > Bit69) OR (BIT190 OR > > Bit191) etc. > > > > Not exactly readable, but I have to assume that it would be much faster. > It > > would make me seriously > > nervous though that I actually got the right bits. As it is now it is > > "plain English", you can read > > the field names from the SQL statement. I would definitely have to have a > > well tested tool that > > performed the bit lookup and wrote the where(). > > > > Can you index bits? If not you would turn the actual query into a ton of > > table scans, though as you > > mention the size of the table would shrink dramatically. It might > actually > > be possible to get the > > entire table into memory if each field (that contained just 'Y' values) > was > > a single bit. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Shamil Salakhetdinov wrote: > >> <<< > >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > > HASCat) > >> OR ...) > >> ... > >> The entire point is to make the process faster and faster and faster. > >> John, > >> > >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > >> consider combining them into bit array fields, for predefined range > values > >> you can make say half-byte groups bit array fields values... by thus > >> minimizing the size of your table record... > >> > >> --Shamil > > > > _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Sep 22 17:06:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 23:06:57 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB931F8.8010407@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> <4AB931F8.8010407@colbyconsulting.com> Message-ID: <4ab94aa8.0a04d00a.02ca.ffff9409@mx.google.com> I can see that in your situation. In mine it is different. Horses for courses. If I were to load and leave loaded all the subforms then I would be back where I started. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 21:22 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 21:57:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 22:57:39 -0400 Subject: [dba-VB] I'm baffled Message-ID: <4AB98EA3.9070806@colbyconsulting.com> I am trying to return a count of data items in a field of my table. When I directly execute the following I get a count: SELECT COUNT(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_code <> '') The count is 15675589. When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of records in the table. The SQL is: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (@fldname <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' As you can see everything is the same except @FldName which is being read out of a cursor of field names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to know why. Somehow I need to "translate" @FldName to the actual name of the field. What is the syntax to get what I need here? TIA, -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Sep 23 00:25:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 15:25:53 +1000 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Household_Occupation_Code is a fieldname (an object) @fldname is a string Your SP version evaluates to: SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ('Household_Occupation_Code' <> '')) rather than SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_Code <> '')) To interpret the variable, you could build your query dynamically and then EXECute it in your SP. Something like: EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + 'FROM dbo.tblHSIDModified ' + 'WHERE (" + @fldsname + '<> ''''))' -- Stuart On 22 Sep 2009 at 22:57, jwcolby wrote: > I am trying to return a count of data items in a field of my table. When I directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' > > As you can see everything is the same except @FldName which is being read out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 01:06:50 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:06:50 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> Message-ID: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Hi Stuart, We're talking C#/VB.NET here? - try test code in P.S - =========== one billion =========== of bitwise AND operations for ============================ two 400 bits long bit arrays ============================ takes about ==================================== 1 minute 4 seconds 260 milliseconds ==================================== on my "mere mortals PC" - two years old Dual Core Pentium. Please correct me if you or anybody else here will find mistakes in my coding/testing results. Thank you. -- Shamil P.S. static void test1() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; values2[225] = true; values2[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:54:40.993 //09:55:44.733 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 } static void test2() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = { true, false, false, true }; bool[] values2 = { false, true, false, true }; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:52:32.604 //09:52:46.785 //0001 } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 1:48 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil <<< snip>>> __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 01:14:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:14:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94057.3080704@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> <4AB94057.3080704@colbyconsulting.com> Message-ID: <011001ca3c15$23a9f0c0$6afdd240$@spb.ru> Hi John, Yes, "balancing act" - the same story here. The answer is to subcontract an expert who will deliver (and will be paid full project price) only in the case they will produce agreed upon result. Then study and use their code to further tune your customer's application performance - and that way getting C# proficiency much faster than by self-education and trial & error (often throw-away) coding practice... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 1:24 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From stuart at lexacorp.com.pg Wed Sep 23 01:19:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 16:19:21 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Message-ID: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart On 23 Sep 2009 at 10:06, Shamil Salakhetdinov wrote: > Hi Stuart, > > We're talking C#/VB.NET here? - try test code in P.S - > > =========== > one billion > =========== > > of bitwise AND operations for > > ============================ > two 400 bits long bit arrays > ============================ > > takes about > > ==================================== > 1 minute 4 seconds 260 milliseconds > ==================================== > > on my "mere mortals PC" - two years old Dual Core Pentium. > > Please correct me if you or anybody else here will find mistakes in my > coding/testing results. > > Thank you. > > -- > Shamil > > P.S. > > > static void test1() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > values2[225] = true; > values2[399] = true; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > //09:54:40.993 > //09:55:44.733 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > } > > static void test2() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = { true, false, false, true }; > bool[] values2 = { false, true, false, true }; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > //09:52:32.604 > //09:52:46.785 > //0001 > } > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 1:48 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > The data storage requirements may be smaller, but the time required to > perform multiple > bitwise operation functions on every one of those 50 milllion rows is going > to be a lot slower > than using simple selection criteria on fields. > > -- > Stuart > > > On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > > > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > > that will be BINARY(50) in T-SQL. > > Although I'm not currently sure you can implement bitwise logical > operations > > solely using T-SQL: but I suppose you can get subset of data using > > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > > bitwise C# operations/functions over bit arrays. > > > > Something like that should work I suppose. > > > > Please correct me if I'm wrong. > > > > -- > > Shamil > <<< snip>>> > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From paul.hartland at googlemail.com Wed Sep 23 01:40:56 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Wed, 23 Sep 2009 07:40:56 +0100 Subject: [dba-VB] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <38c884770909222340m31f1155dw2784fab5a8f2422a@mail.gmail.com> John, Just an idea off the top of my head, have you tried enclosing the @fldname in brackets like below: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ((@fldname) <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' Paul 2009/9/23 jwcolby > I am trying to return a count of data items in a field of my table. When I > directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is > equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data > elements' > > As you can see everything is the same except @FldName which is being read > out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every > record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > -- Paul Hartland paul.hartland at googlemail.com From shamil at smsconsulting.spb.ru Wed Sep 23 01:54:42 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:54:42 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Message-ID: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Hi Stuart, No problem. "BitArrays population magic" isn't a complicated task for John "DB from Hell". BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB from Hell" with 50 million records it will be 50 millions * 400 = 20 billion bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do expect that even "brute force crunching" will produce a kind of instantaneous results for the part of query where char "Y/N" columns are currently used. And once loaded in memory the info can be kept/updated there (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much IOW maybe there is no even a need to substitute in "DB from Hell" current char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... Please correct me if you find I'm wrong somewhere in my considerations/expectations/evaluations... Thank you. -- Shamil P.S. static void test3() { //const long CYCLES_QTY = 1000000000; // 1 billion const long CYCLES_QTY = 50000000; // 50 millions bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); for (int i = 0; i < 400; i++) bitTest2[i] = true; Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.Xor(bitTest2); //bitTest1.Or(bitTest2); //bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); // 50 millions - AND //10:32:56.772 //10:32:59.548 //10000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 // 50 millions - OR //10:34:27.644 //10:34:30.451 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 // 50 millions - XOR //10:35:27.414 //10:35:30.182 //01111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111011111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111110 Console.WriteLine(); foreach (bool bit in bitTest2) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 10:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 02:19:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 11:19:48 +0400 Subject: [dba-VB] Useful information if you work with PropertyGrid, and not only with it... Message-ID: <011201ca3c1e$3d5beb00$b813c100$@spb.ru> Hi All, FYI: ICustomTypeDescriptor, Part 1 http://msdn.microsoft.com/en-us/magazine/cc163816.aspx ICustomTypeDescriptor, Part 2 http://msdn.microsoft.com/en-us/magazine/cc163804.aspx -- Shamil From stuart at lexacorp.com.pg Wed Sep 23 03:45:49 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 18:45:49 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Message-ID: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 10:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Sorry, > > I was under the impression that we were talking about selecting rows from > JC's "Database > >From Hell", not just manipulating bit arrays which we have somehow > magically populated > without pulling data from SQL Server. > > > -- > Stuart > > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 04:44:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 13:44:08 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> Message-ID: <000701ca3c32$673246e0$3596d4a0$@spb.ru> Stuart, I did mean that once loaded bit array will be kept "warm" in memory (John has enough memory for that). It's unclear what are the main type of queries of JC's customer (John can you clarify this issue?) - if that queries are to select a few thousand individual records as you suggest(?) and all the queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will outperform MS SQL, which (MS SQL) will have to scan the whole 50 million records, and "brute force bits crunching" will return a few thousand individual records IDs in ~3 seconds(?), and those IDs can then be used to select the records from the "DB from Hell" and apply the rest of the WHERE filtering criteria to select a subset; - if that queries are to select a few millions records and calculate some stats on them and all that queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will again outperform MS SQL for bit operation, as for the other part of WHERE clause - it could be possible to use LINQ for Objects here if all the compacted records can be loaded in memory on huge JC's computer - and if that will be possible then LINQ for Objects (of just custom programming of selection criteria logic evaluation + counting stats) should let to outperform MS SQL I expect... Recap: it all depends on the type of the queries to run against "DB From Hell" - if 80-90% of them fit first or the second type of queries mentioned above then it does make sense for compacted records to use "brute force bits crunching" approach as it might result in considerable shortening of the time queries run. If it doesn't make any sense there will a query run within a minute or within one or a couple of hours then "brute force bits crunching" isn't needed there... Or do you have your queries already running over "DB from Hell" within a minute/several minutes, John? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 12:46 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > <<< snip >>> From jwcolby at colbyconsulting.com Wed Sep 23 07:36:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:36:19 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <000701ca3c32$673246e0$3596d4a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> Message-ID: <4ABA1643.9090201@colbyconsulting.com> Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Wed Sep 23 07:50:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:50:22 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Message-ID: <4ABA198E.8070600@colbyconsulting.com> Stuart, When I do that I get an error "must declare the scalar variable @DataCnt" John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Household_Occupation_Code is a fieldname (an object) > @fldname is a string > > Your SP version evaluates to: > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE ('Household_Occupation_Code' <> '')) > > rather than > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_Code <> '')) > > > To interpret the variable, you could build your query dynamically and then EXECute it in > your SP. Something like: > > EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + > 'FROM dbo.tblHSIDModified ' + > 'WHERE (" + @fldsname + '<> ''''))' > > From shamil at smsconsulting.spb.ru Wed Sep 23 08:28:24 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 17:28:24 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ABA1643.9090201@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> <4ABA1643.9090201@colbyconsulting.com> Message-ID: <001201ca3c51$bb980480$32c80d80$@spb.ru> Hi John, Thank you for your reply. BTW, how much it takes in average to run a customer query using your current huge DB, and what size on disk does this DB occupy including all index files, how much RAM is needed, what are hard disks and CPU? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 4:36 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From fuller.artful at gmail.com Wed Sep 23 08:42:14 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 23 Sep 2009 09:42:14 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4ABA198E.8070600@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> <4ABA198E.8070600@colbyconsulting.com> Message-ID: <29f585dd0909230642r539e524agb698acd26bc36c9b@mail.gmail.com> I tried this approach on one of my own databases and it worked just fine. Given the differences in tables, I did a NOT NULL but that is beside the point I think. Here is my sproc and an example call: IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE SPECIFIC_SCHEMA = N'BOM' AND SPECIFIC_NAME = N'ap_CountByField' ) DROP PROCEDURE BOM.ap_CountByField GO CREATE PROCEDURE BOM.ap_CountByField @fld_name varchar(100) AS SELECT COUNT(*) FROM BOM.AssemblyComponents WHERE @fld_name IS NOT NULL GO -- ============================================= -- Example to execute the stored procedure -- ============================================= EXECUTE BOM.ap_CountByField 'AssemblyComponentID' GO hth, Arthur From shamil at smsconsulting.spb.ru Wed Sep 23 16:56:43 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 24 Sep 2009 01:56:43 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) In-Reply-To: <00f601ca3bc8$62896570$279c3050$@spb.ru> References: <00f601ca3bc8$62896570$279c3050$@spb.ru> Message-ID: <004301ca3c98$bdeaaed0$39c00c70$@spb.ru> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4451 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Thu Sep 24 05:50:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 24 Sep 2009 12:50:41 +0200 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: Hi Shamil It could be interesting to have a small report from you as you proceed! But the course itself - as described in the right column on the link you provided - isn't it well below your current skills? /gustav >>> shamil at smsconsulting.spb.ru 23-09-2009 23:56 >>> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management-Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From jwcolby at colbyconsulting.com Mon Sep 28 10:19:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:19:09 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <200909241755.n8OHtqPB016788@databaseadvisors.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> Message-ID: <4AC0D3ED.2060201@colbyconsulting.com> Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 28 10:44:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:44:22 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4AC0D9D6.9080600@colbyconsulting.com> I just managed to Alt-Tab back to Management studio, and that application is updating the screen again (though not the cursor movement). the little "Executing query" icon is rotating, and the query timer is counting up the seconds (01:47:08 ATM). I just discovered (on my laptop) the set IO affinity setting in SQL Server which I did not set. No idea what that does for me but I wonder if that being assigned to SQL Server for all processors could be part of the problem. John W. Colby www.ColbyConsulting.com jwcolby wrote: > Well I thought that assigning three processors to the SQL Server software was the answer, and it in > fact did make a difference in some cases, but there is still something happening that "locks up" the > server. IO started a long running update query going this morning and immediately afterwards I was > able to move around, look at other stuff. Then I went away to do other things. When I came back it > was "locked up" - with the Management studio application full screen, and the cursor immovable. Of > course I thought it was locked up, and I have always believed that it was literally never going to > come back. > > I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I > was at Windows Explorer, not Management Studio. So the machine is in fact responding, but > glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to > another machine the cursor is moving just fine, when I move back to this machine it is locked up. > However the cursor changed from the insertion pointer icon to the arrow icon when i switched from > Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is > just responding glacially. > > This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged > three of the processors when it began processing the query so I am comfortable that it in fact is > correctly using just three processors. > > So what is happening that would so completely freeze up the server that the cursor won't even move? > > Weird. > > Has anyone else out there ever experienced this? Found a solution? > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 28 11:00:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 28 Sep 2009 17:00:28 +0100 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4ac0ddb1.0508d00a.4dcd.012c@mx.google.com> If it is responding, then Ctrl-Alt-Delete to Task Manager and click on processes to sort them and see what process is taking the ticks. There are other *thread* software around mentioned here before which gives more granularity of the processes. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 28 September 2009 16:19 To: Discussion concerning MS SQL Server; VBA; Access Developers discussion and problem solving Subject: Re: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:04:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:04:39 -0400 Subject: [dba-VB] c# text box changed event Message-ID: <4AC16B37.2000605@colbyconsulting.com> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com From michael at ddisolutions.com.au Mon Sep 28 21:09:12 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:09:12 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Hi John, Is the control bound? Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:05 PM To: VBA Subject: [dba-VB] c# text box changed event I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:26:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:26:22 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Message-ID: <4AC1704E.1000201@colbyconsulting.com> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > From michael at ddisolutions.com.au Mon Sep 28 21:32:23 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:32:23 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582474@ddi-01.DDI.local> How about KeyDown, Leave combinations then? When keydown is fired set dirty, When leave fires on a dirty control 'save' the data. Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:26 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# text box changed event No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Mon Sep 28 22:33:42 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 13:33:42 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From Gustav at cactus.dk Tue Sep 29 05:04:51 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 12:04:51 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! Anyway, I had the same issue and worked out this very simple method: private void textBoxName_TextChanged(object sender, EventArgs e) { TextBox textBox = (TextBox)sender; if (textBox.Focused) { Console.WriteLine(textbox.Text); } } /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by > code. Is there a change event that fires for manual editing but not by code editing? From jdthree at frontiernet.net Tue Sep 29 06:50:22 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Tue, 29 Sep 2009 07:50:22 -0400 Subject: [dba-VB] XML LINQ Help! In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Message-ID: <003c01ca40fb$07061ad0$15125070$@net> Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 29 08:14:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:14:31 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <4AC20837.2090004@colbyconsulting.com> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 08:45:00 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 15:45:00 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? From jwcolby at colbyconsulting.com Tue Sep 29 08:58:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:58:02 -0400 Subject: [dba-VB] SPAM-LOW: Re: c# text box changed event In-Reply-To: References: Message-ID: <4AC2126A.2070301@colbyconsulting.com> Gustav, > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. I keep good company I suppose? I never used c# in the past, only vb.net. The syntax is different enough that it requires at least some study. I use the class to force myself to put in the hours. As a professional developer it is easy to get sidetracked and not do the study, especially when you have no paying work to keep you in the area. Plus theoretically it provides me another place to ask questions, interface with others working in the language etc. I plan on doing this and the next level class, at which point I will be most of the way through the book and hopefully well on my way. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. > > As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. > This: > > TextBox textBox = (TextBox)sender; > > does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: > > CheckBox checkBox = (CheckBox)sender; > > What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> > Gustav, > > > Are we allowed to help with homework? > > LOL. > > The homework does not involve classes, collections, or even the messagebox (all used in my version > of the homework) because we don't even get to that until next semester. I am just trying to > entertain myself and learn something beyond "how does the string object work". > > This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on > chapter 4 - How to work with numeric and string data. > > That is a cool method of discovering the source of the change event. I have too admit though that I > don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't > we error if this is not a text box type? And whatever caused the change has the focus, so why > doesn't the object (once cast) always say that it has the focus? > > I'm confused. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! >> >> Anyway, I had the same issue and worked out this very simple method: >> >> >> private void textBoxName_TextChanged(object sender, EventArgs e) >> { >> TextBox textBox = (TextBox)sender; >> if (textBox.Focused) >> { >> Console.WriteLine(textbox.Text); >> } >> } >> >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> >> No. I am doing a homework assignment where I collect grades in classes, and then move back and >> forth through the classes. I have chosen to use a shared text box where the grade classes display >> their grades, and the user enters new grades. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Michael Maddison wrote: >>> Hi John, >>> >>> Is the control bound? >>> >>> Cheers >>> >>> Michael M >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Tuesday, 29 September 2009 12:05 PM >>> To: VBA >>> Subject: [dba-VB] c# text box changed event >>> >>> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >>> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >>> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 10:01:08 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 17:01:08 +0200 Subject: [dba-VB] XML LINQ Help! Message-ID: Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From shamil at smsconsulting.spb.ru Tue Sep 29 14:47:33 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 29 Sep 2009 23:47:33 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <009e01ca413d$b17425b0$145c7110$@spb.ru> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 29, 2009 5:45 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? __________ Information from ESET NOD32 Antivirus, version of virus signature database 4468 (20090929) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From michael at ddisolutions.com.au Tue Sep 29 18:32:21 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:32:21 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> <003c01ca40fb$07061ad0$15125070$@net> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247C@ddi-01.DDI.local> Thanks Jim, Going through the docs on MSDN http://msdn.microsoft.com/en-us/library/bb675196.aspx they do it slightly differently... XmlReader r = XmlReader.Create ( @path ); while ( r.NodeType != XmlNodeType.Element ) r.Read ( ); XElement e = XElement.Load ( r ); IEnumerable attList = from att in e.Elements ( ).Attributes ( "MID" ) //where (string) att.Value == "SR_20090929" //this works select att; foreach ( XAttribute att in attList ) { Console.WriteLine ( att.Value ); } Maybe they used a XmlReader just to demonstrate its use? Havn't found a best practices yet. When I suss out how to enumerate the races I'll post back. Cheers Michael M Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Tue Sep 29 18:51:52 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:51:52 +1000 Subject: [dba-VB] XML LINQ Help! References: Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247D@ddi-01.DDI.local> Hi Gustav, I considered dumping the lot into a dataset but at the moment the end result is supposed to be xml to be loaded into Excel. And you are also correct that I don't need to load from a file. The web service methods returns XmlElement, I wrote it out to a xmlDocument for my convienience. The client was going to handle the Excel side but is now having second thoughts :-) So now I'm looking at extracting just the data needed and exposing to Excel as Arrays. I think that will make it easier to control in Excel, if anyone has other suggestions I'm all ears. Cheers Michael M Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From Gustav at cactus.dk Wed Sep 30 02:31:22 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 09:31:22 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 30 05:30:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 30 Sep 2009 14:30:08 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <00c401ca41b8$fd3ece20$f7bc6a60$@spb.ru> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4469 (20090930) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Wed Sep 30 06:43:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 13:43:21 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil Thanks. That requires less code for each control which is a good thing. However, it doesn't address the issue I had when browsing records in formview with bound textboxes. Perhaps both methods should be combined? I think we miss an event: UserChangedText /gustav >>> shamil at smsconsulting.spb.ru 30-09-2009 12:30:08 >>> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 00:48:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 09:48:18 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <4dd71a0c0908301447s1c1fc75cw1eac8e9761f2a50@mail.gmail.com> Message-ID: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 1 01:54:39 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 10:54:39 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> References: <006901ca2a21$702c01a0$508404e0$@spb.ru> <00a301ca2a60$97e5b080$c7b11180$@spb.ru> <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> Message-ID: <00cb01ca2ad1$150793b0$3f16bb10$@spb.ru> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 9:29 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have got a helping hand from Mike, Gustav and Doug who happened to be "Lucky Guys" (thank you guys!) - they have referred below sample working well "out of the box". This sample solution (in Mike's interpretation) is posted here: http://northwind.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26600#D ownloadId=81391 (~65KB) It can be used as a test to see if your system is "WCF Web Services Development Ready". It has now WCF web service reference set OK (as this reference setting happened on Mike's VS2008) but when I run it I'm getting runtime error: "The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state." I'm currently "digging further" trying to make this sample working on my system - here is some information I'm looking through: How to make sure you don't get WCF Faulted State Exception? http://stackoverflow.com/questions/530731/how-to-make-sure-you-dont-get-wcf- faulted-state-exception Avoiding Problems with the Using Statement http://msdn.microsoft.com/en-us/library/aa355056.aspx I will inform you on my further progress (if any). Thank you for your help. -- Shamil P.S. I haven't been "fighting" with this issue all the working day through, I was already in swimming pool with my kid etc. - yet this issue is one of the representative cases what make software development so "heavy" sometimes - the best/quickest solutions for such issues seems to be clean reinstalls of the systems, and having just latest release versions of MS software on that systems: still have to find time/resources to prepare something like that - this current case could be the "last drop"... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 1:57 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I'd be very grateful if anybody could go through the following sample/workthrough using VS2008 SP1 "How to Consume a Web Service" http://johnwsaundersiii.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c= BlogPart&partqs=amonth%3d5%26ayear%3d2009 (watch line wraps) and publish for download/send me privately the sources you'll get. I can't get this sample working on my system (something is still wrong with my system setup), and I wanted to compare your sources with the ones I'm getting here to find out how to solve this "nightmarish" issue. If all will work well it should take several minutes to make the sample working on your system assuming you have VS2008 SP1 and Windows SDK installed. Please do not try to look for workarounds if the above sample will not work out of the box as described - looking for such workaround can take hours and hours (and solution depends on your system (current) context/previous setups I believe) - you'll risk to lose your working day. Solution/workaround should be simple, effective and generic - I still can't find it nor by myself nor by intensive Googling/Binging. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 1 04:34:46 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 01 Sep 2009 11:34:46 +0200 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Message-ID: Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 06:52:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 15:52:53 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: References: Message-ID: <00db01ca2afa$be7268c0$3b573a40$@spb.ru> Hi Gustav, No, there is no other software running on this port: I have just changed IIS based WCF web service to use 59507 port, and then changed service reference in Mike's sample to consume this my local IIS WCF web service - and everything worked OK. Yes, I will try to monitor my PC IP Ports activity but I have to postpone that as I have got now a couple of project to develop. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 01, 2009 1:35 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:16:30 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:16:30 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Tue Sep 1 10:47:16 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 19:47:16 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4386 (20090901) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:53:26 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:53:26 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> Message-ID: There are some. The important thing is understanding that aspect of how ASP.Net works, which is why I said it's a good path to get familiar with classic asp first, before using the more powerful ASP.Net. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 10:47 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Wed Sep 2 13:38:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 22:38:40 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Message-ID: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 2 14:56:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 23:56:02 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application In-Reply-To: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001101ca2c07$678abfe0$36a03fa0$@spb.ru> Hi All, I have just found an interesting sample related to the subject or this thread as well as on WCF services one: "GeoNames .NET WCF Client" http://www.codeproject.com/KB/WCF/GeoNames-WCFClient.aspx Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 02, 2009 10:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Wed Sep 2 19:41:16 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Wed, 2 Sep 2009 20:41:16 -0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I have a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 04:53:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 3 Sep 2009 13:53:46 +0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Hi Mike, Thank you. Would that be correct assumption that using Mapstraction with OpenStreetMaps is free for commercial Web applications? And when my customer will get some "fat" it will be not that complicated to switch to GoogleMaps or other commercial GIS solution providers as Mapstraction provides good JavaScript abstraction layer? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:41 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I hae a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 07:57:53 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 08:57:53 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Message-ID: <86C0C6779099450D9E17241C79EF23DB@Mattys> Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 15:03:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 00:03:48 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application In-Reply-To: <86C0C6779099450D9E17241C79EF23DB@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> Message-ID: <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Hi Mike, OK. If I can "GET" Mapstraction with something else open source (read "free") to implement the referred below functionality then I'd try to "GIVE" back developed here free/open source DotNetNuke (DNN) module wrapping that functionality to be reused by others - would that be a "fair exchange"? :) Maybe I should ask it that way - do you know what provider Mapstraction talks to here: http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 I mean you mentioned that the above site's map navigation is developed using Mapstraction - maybe you know also what GIS data/API provider it's used there? The only functionality, which is needed here currently is: - to show a country map with regions/states; - highlight/show tooltip of region/state on mouse move; - zoom region/state when it's clicked by mouse; - highlight sub-regions (if any). Purchasing advanced commercial GIS systems for the above functionality is looking currently excessive here (for my customer). Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:58 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4392 (20090903) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 15:31:51 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 16:31:51 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From mmattys at rochester.rr.com Thu Sep 3 16:13:50 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 17:13:50 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> >>>> _______________________________________________ >>>> dba-VB mailing list >>>> dba-VB at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>>> http://www.databaseadvisors.com >>>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4392 (20090903) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006901ca2d22$dd1a3260$974e9720$@spb.ru> Hi Mike, Don't worry. No problem at all. Your remark is accepted here with pleasure. If you think I like open source that wouldn't be true :) But I have to accept that "open source software phenomena" as reality, and to find how to live with it with as little as possible "damage" to my own and other developers business. You know I started my development carrier when there was no yet that phenomena. Nowadays I'd probably not go into programming because of "corruption" of that profession introduced by open source. Although AFAIS the "greed" of commercial solutions' software shops together with rather low quality of many of that solutions especially in 1990-ies was one of the driving forces of the "open source software".... You convinced me - I'd try to use as little as possible open source software solutions - none will be ideal. And sharing experience as we're doing here and making sample solutions etc. - I'll continue doing that as this activity helps to learn new technologies, helps to minimize routine everyday work etc. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 1:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006a01ca2d22$dfb21b50$9f1651f0$@spb.ru> Hi Mike, OK, I will not do that. :) I will try to find some affordable commercial (or semi-commercial) solution, I will put it into DNN Module Envelope, and I will be selling my solution online for USD99-3USD00 - usual price for advanced commercial DNN modules. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 12:32 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 4 03:51:23 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 4 Sep 2009 09:51:23 +0100 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: <006901ca2d22$dd1a3260$974e9720$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Fri Sep 4 04:02:19 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 13:02:19 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: <007401ca2d3e$696242b0$3c26c810$@spb.ru> Hi Mark, Here is the info on GoogleMaps (API) usage in commercial applications - I have got it from Mike: <<< For External Applications (public facing sites or customer facing extranets) * $10,000 for 1 million page views per year * $20,000 for 2 million page views per year * $30,000 for 3 million page views per year * $40,000 for 5 million page views per year * Please call for pricing above 5 external million page views per year For Internal Applications (internal applications, non-customer facing) * $10,000 for 250K page views per year * $20,000 for 500K views per year * $30,000 for 750K page views per year * $40,000 for 1.5 million page views per year * Please call for pricing above 1.5 million internal page views per year FAQ How can I try out the Google Maps API? For development purpose you are authorized to use a Free Google Maps license key as an Enterprise License key for 30 days. This means that you are licensed to use Google Maps behind the firewall, in an internal application, or as part of paid or premium content for 30 days (e.g. the Enterprisefull licensing agreement). The 30 day free trial is still subject to a limit of 15,000 geocodes per day. To sign up for the key, please visit http://code.google.com/apis/maps/signup.html If you have already signed up for a key, please mark the date of this e-mail as the start of your 30 day free trial. >>> AFAIS GoogleMaps is not free - and if used from available on SnowCovered DNN modules one have to pay for both - a DNN module license and Google Maps API usage. Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen Sent: Friday, September 04, 2009 12:51 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 08:41:26 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 09:41:26 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> Message-ID: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com From jwcolby at colbyconsulting.com Fri Sep 4 09:35:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 10:35:29 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <4AA125B1.3000702@colbyconsulting.com> That is a rather steep fee schedule however. I find the fee difference interesting as well. Significantly more expensive for corporate usage than public. John W. Colby www.ColbyConsulting.com Mike Mattys wrote: > To be sure, Google is operating exactly as it should in this world > according to all that is taught in the 'best' ivy league business colleges > and the 'wisdom' of all financial programs on television. > > No one understands the consequences down the road. > > One doesn't observe the pharmaceutical companies adopting an open > source philosophy, either. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 5:02 AM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawinginASP.NETapplication > > >> Hi Mark, >> >> Here is the info on GoogleMaps (API) usage in commercial applications - I >> have got it from Mike: >> >> <<< >> For External Applications (public facing sites or customer facing >> extranets) >> * $10,000 for 1 million page views per year >> * $20,000 for 2 million page views per year >> * $30,000 for 3 million page views per year >> * $40,000 for 5 million page views per year >> * Please call for pricing above 5 external million page views per year >> >> For Internal Applications (internal applications, non-customer facing) >> * $10,000 for 250K page views per year >> * $20,000 for 500K views per year >> * $30,000 for 750K page views per year >> * $40,000 for 1.5 million page views per year >> * Please call for pricing above 1.5 million internal page views per year >> >> FAQ >> How can I try out the Google Maps API? >> For development purpose you are authorized to use a Free Google Maps >> license key as an Enterprise License key for 30 days. This means that >> you are licensed to use Google Maps behind the firewall, in an >> internal application, or as part of paid or premium content for 30 >> days (e.g. the Enterprisefull licensing agreement). The 30 day free >> trial is still subject to a limit of 15,000 geocodes per day. >> >> To sign up for the key, please visit >> http://code.google.com/apis/maps/signup.html >> If you have already >> signed up for a key, please mark the date of this e-mail as the start >> of your 30 day free trial. >> AFAIS GoogleMaps is not free - and if used from available on SnowCovered >> DNN >> modules one have to pay for both - a DNN module license and Google Maps >> API >> usage. >> >> Correct? >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen >> Sent: Friday, September 04, 2009 12:51 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Hello Shamil and Mike, >> Shamil, perhaps I am missing something here, but I would have assumed that >> you are free to use Google Maps for your application. Why can you not? >> Of >> did I miss something that you need a wrapper for Google maps? >> >> When I searched on SnowCovered I see plenty of Google Map providers, so I >> guess you must be looking for something else? >> >> thanks >> >> Mark >> >> >> >> 2009/9/4 Shamil Salakhetdinov >> >>> Hi Mike, >>> >>> Don't worry. >>> No problem at all. >>> Your remark is accepted here with pleasure. >>> If you think I like open source that wouldn't be true :) >>> But I have to accept that "open source software phenomena" as reality, >>> and >>> to find how to live with it with as little as possible "damage" to my own >>> and other developers business. You know I started my development carrier >>> when there was no yet that phenomena. Nowadays I'd probably not go into >>> programming because of "corruption" of that profession introduced by open >>> source. Although AFAIS the "greed" of commercial solutions' software >>> shops >>> together with rather low quality of many of that solutions especially in >>> 1990-ies was one of the driving forces of the "open source software".... >>> >>> You convinced me - I'd try to use as little as possible open source >>> software >>> solutions - none will be ideal. >>> >>> And sharing experience as we're doing here and making sample solutions >> etc. >>> - I'll continue doing that as this activity helps to learn new >>> technologies, >>> helps to minimize routine everyday work etc. >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Friday, September 04, 2009 1:14 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> Shamil, >>> >>> I wasn't trying to be rude, I really don't understand >>> the Open-Source thing. >>> >>> Really. >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Mike Mattys" >>> To: "Discussion concerning Visual Basic and related programming issues." >>> >>> Sent: Thursday, September 03, 2009 4:31 PM >>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> >>>> Shamil, >>>> >>>> Doesn't it simply mean that you'll put a lot of web mapping >>>> programmers in a lower income bracket and only big companies >>>> will benefit? >>>> >>>> - >>>> Michael R Mattys >>>> MapPoint and Database Dev >>>> www.mattysconsulting.com >>>> - >>>> ----- Original Message ----- >>>> From: "Shamil Salakhetdinov" >>>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>>> >>>> Sent: Thursday, September 03, 2009 4:03 PM >>>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>>> objectspresentation/drawing inASP.NETapplication >>>> >>>> >>>>> Hi Mike, >>>>> >>>>> OK. If I can "GET" Mapstraction with something else open source (read >>>>> "free") to implement the referred below functionality then I'd try to >>>>> "GIVE" >>>>> back developed here free/open source DotNetNuke (DNN) module wrapping >>>>> that >>>>> functionality to be reused by others - would that be a "fair >>>>> exchange"? >>>>> :) >>>>> >>>>> Maybe I should ask it that way - do you know what provider >>>>> Mapstraction >>>>> talks to here: >>>>> >>>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >>>>> >>>>> I mean you mentioned that the above site's map navigation is developed >>>>> using >>>>> Mapstraction - maybe you know also what GIS data/API provider it's >>>>> used >>>>> there? >>>>> >>>>> The only functionality, which is needed here currently is: >>>>> >>>>> - to show a country map with regions/states; >>>>> - highlight/show tooltip of region/state on mouse move; >>>>> - zoom region/state when it's clicked by mouse; >>>>> - highlight sub-regions (if any). >>>>> >>>>> Purchasing advanced commercial GIS systems for the above functionality >>> is >>>>> looking currently excessive here (for my customer). >>>>> >>>>> Thank you. >>>>> >>>>> -- >>>>> Shamil >>>>> >>>>> -----Original Message----- >>>>> From: dba-vb-bounces at databaseadvisors.com >>>>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>>>> Sent: Thursday, September 03, 2009 4:58 PM >>>>> To: Discussion concerning Visual Basic and related programming issues. >>>>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>>>> objectspresentation/drawing inASP.NET application >>>>> >>>>> Shamil, >>>>> >>>>> I can't be quoted as an authority on this because I don't really >>>>> understand "open source" in a world based upon "GET" instead >>>>> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >>>>> >>>>> However, It appears that OSM is free but Mapstraction does not yet >>>>> 'talk' with OpenStreetMaps. They are planning to do so. >>>>> >>>>> Then again, they seem to be asking for participation in the project >>>>> ... >>>>> >>>>> - >>>>> Michael R Mattys >>>>> MapPoint and Database Dev >>>>> www.mattysconsulting.com > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 4 10:07:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 11:07:16 -0400 Subject: [dba-VB] Developing an application for sale? Message-ID: <4AA12D24.3020508@colbyconsulting.com> I found this today. http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx I am looking at starting a business with a current client to design and sell a product. In particular look at this which is a program description: http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf If you are seriously developing an application, if you are a "startup" or can become one, this program will provide you with the top end development products as well as server OS etc. I will be talking to my potential partner about this. -- John W. Colby www.ColbyConsulting.com From mmattys at rochester.rr.com Fri Sep 4 11:15:59 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 12:15:59 -0400 Subject: [dba-VB] Developing an application for sale? References: <4AA12D24.3020508@colbyconsulting.com> Message-ID: <0FCC1CA012AA479C8803DD1BB96B7F99@Mattys> Very interesting. Thanks, John - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" ; "VBA" Sent: Friday, September 04, 2009 11:07 AM Subject: [dba-VB] Developing an application for sale? >I found this today. > > http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx > > I am looking at starting a business with a current client to design and > sell a product. In > particular look at this which is a program description: > > http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf > > If you are seriously developing an application, if you are a "startup" or > can become one, this > program will provide you with the top end development products as well as > server OS etc. > > I will be talking to my potential partner about this. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 11:26:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 20:26:00 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Hi Mike, It looks like GoogleMaps API (not Premier version) can be used for free even on commercial web sites with some limitations and my customer business should fit them: <<< http://code.google.com/intl/en/apis/maps/faq.html Can I use the Google Maps API on a commercial website? As long as your site is generally accessible to consumers without charge, you may use the Google Maps API. For example, if your website is supported by advertising, it likely falls within the Google Maps API Terms of Service. If you charge people to place information on your map (e.g. to list their homes for sale), but you display this information using the Google Maps API on a free part of your site, you'll also meet the Google Maps API Terms of Service. However, not all commercial uses are allowed. If your site meets any of the following criteria you must use Google Maps API Premier: * Your site is only available to paying customers. * Your site is only accessible within your company or on your intranet. Remember, Google reserves the right to suspend or terminate your use of the Google Maps API at any time, so please ensure that you read the Terms of Service carefully. >>> Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 5:41 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4396 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 15:38:56 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:38:56 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys> <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: Shamil, I think that as long as you're not charging by some measure of transactions and the site is publicly available that you'll be able to duplicate the site you showed us without being terminated by Google. It would be best to check with them, of course. If I can be of more assistance, please let me know. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 12:26 PM Subject: Re: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Hi Mike, > > It looks like GoogleMaps API (not Premier version) can be used for free > even > on commercial web sites with some limitations and my customer business > should fit them: > > <<< > http://code.google.com/intl/en/apis/maps/faq.html > > Can I use the Google Maps API on a commercial website? > > As long as your site is generally accessible to consumers without > charge, you may use the Google Maps API. For example, if your website is > supported by advertising, it likely falls within the Google Maps API Terms > of Service. If you charge people to place information on your map (e.g. to > list their homes for sale), but you display this information using the > Google Maps API on a free part of your site, you'll also meet the Google > Maps API Terms of Service. > > However, not all commercial uses are allowed. If your site meets any of > the following criteria you must use Google Maps API Premier: > > * Your site is only available to paying customers. > * Your site is only accessible within your company or on your > intranet. > > Remember, Google reserves the right to suspend or terminate your use of > the Google Maps API at any time, so please ensure that you read the Terms > of > Service carefully. >>>> > > Correct? > > Thank you. > > -- > Shamil From mmattys at rochester.rr.com Fri Sep 4 15:54:54 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:54:54 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys><007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: <670A61C34ECF434A80325BD4FF027FDA@Mattys> Shamil, A second opinion from here was: "Yeah, they're going to charge." Reasoning: If you're going to receive income from it, you're going to pay. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Friday, September 04, 2009 4:38 PM Subject: Re: [dba-VB]Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Shamil, > > I think that as long as you're not charging by some measure > of transactions and the site is publicly available that you'll > be able to duplicate the site you showed us without being > terminated by Google. > > It would be best to check with them, of course. > If I can be of more assistance, please let me know. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 12:26 PM > Subject: Re: [dba-VB] > Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > > >> Hi Mike, >> >> It looks like GoogleMaps API (not Premier version) can be used for free >> even >> on commercial web sites with some limitations and my customer business >> should fit them: >> >> <<< >> http://code.google.com/intl/en/apis/maps/faq.html >> >> Can I use the Google Maps API on a commercial website? >> >> As long as your site is generally accessible to consumers without >> charge, you may use the Google Maps API. For example, if your website is >> supported by advertising, it likely falls within the Google Maps API >> Terms >> of Service. If you charge people to place information on your map (e.g. >> to >> list their homes for sale), but you display this information using the >> Google Maps API on a free part of your site, you'll also meet the Google >> Maps API Terms of Service. >> >> However, not all commercial uses are allowed. If your site meets any >> of >> the following criteria you must use Google Maps API Premier: >> >> * Your site is only available to paying customers. >> * Your site is only accessible within your company or on your >> intranet. >> >> Remember, Google reserves the right to suspend or terminate your use >> of >> the Google Maps API at any time, so please ensure that you read the Terms >> of >> Service carefully. >>>>> >> >> Correct? >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Mon Sep 7 10:33:56 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 7 Sep 2009 19:33:56 +0400 Subject: [dba-VB] FYI: Learn Lean Software Development and Kanban Systems Message-ID: <001f01ca2fd0$a0f6eac0$e2e4c040$@spb.ru> Hi All, Here is a good collection of links on subject: "Learn Lean Software Development and Kanban Systems" http://johnnycoder.com/blog/2009/08/26/learn-lean-software-development-and-k anban-systems/ Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 02:57:01 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 11:57:01 +0400 Subject: [dba-VB] DotNetNuke: custom forms, map navigation/geocoding, AJAX... Message-ID: <003d01ca3059$f3c46f00$db4d4d00$@spb.ru> Hi All, It looks like I have finally found advanced samples of DNN web apps - have a look: Rechercher sur carte http://www.frantsia.ru/nedvijimost/fr/ Interactive Map http://www.camposdenijar.com/ToDO/InteractiveMap/tabid/88/Default.aspx AFAIUK one of DNN generic modules used here is XMod: http://dnndev.com/Default.aspx?tabid=213 Do you know what other modules/techniques are used to develop interactive web page here: http://www.frantsia.ru/nedvijimost/fr/ Thank you. --Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 03:59:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 12:59:53 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Message-ID: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Hi All, Additionally to my previous message - FYI - here are amazing DNN related stuff/development tools - amazing at least for me - I must say I have never seen something like that made using DNN: http://dnnprofessor.com/Home.aspx Enjoy! --Shamil P.S. The mentioned above stuff is not free but its price is also amazing - amazingly low IMO: From max.wanadoo at gmail.com Tue Sep 8 05:16:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 11:16:51 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 8 05:46:49 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 14:46:49 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 11:34:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 17:34:06 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Message-ID: <4aa68798.13125e0a.04fe.4f39@mx.google.com> I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 12:14:03 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 21:14:03 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa68798.13125e0a.04fe.4f39@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> Message-ID: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 12:38:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 18:38:54 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Message-ID: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 13:13:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 22:13:18 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> Message-ID: <000c01ca30b0$0c51b860$24f52920$@spb.ru> Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 13:27:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 19:27:02 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000c01ca30b0$0c51b860$24f52920$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> Message-ID: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 14:12:34 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 23:12:34 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> Message-ID: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > From max.wanadoo at gmail.com Tue Sep 8 14:24:15 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 20:24:15 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Message-ID: <4aa6af8d.26015a0a.7fde.ffff9d5b@mx.google.com> Shamil, Thanks for all that. I am going to run this past my colleague to see if this is something we can go with at work. Thanks very much for the info. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 20:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 15 07:26:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 Sep 2009 08:26:42 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK Message-ID: <4AAF8802.7020606@colbyconsulting.com> I ran across this today. I use Sync Toy to synchronize directories for various purposes - photos between the server and my laptop, backup files between the backup directory and an external drive etc. It seems that Sync Toy is a pretty face over a sync framework, which you can program to. http://msdn.microsoft.com/en-us/sync/bb887623.aspx http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Thu Sep 17 11:41:54 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 20:41:54 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime Message-ID: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil From cfoust at infostatsystems.com Thu Sep 17 12:01:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 17 Sep 2009 10:01:32 -0700 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Thu Sep 17 12:10:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:10:53 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: <00d101ca37b9$d1461930$73d24b90$@spb.ru> Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Thu Sep 17 12:48:35 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:48:35 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00d101ca37b9$d1461930$73d24b90$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> <00d101ca37b9$d1461930$73d24b90$@spb.ru> Message-ID: <00d201ca37bf$166501c0$432f0540$@spb.ru> Hi Charlotte and all, I have got the answer from other source that the value of BrowsableAttribute as well as of other attributes can't be set at runtime. Sorry, that was a wrong request of mine. Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:11 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 18 17:52:09 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 18 Sep 2009 23:52:09 +0100 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: <4AAF8802.7020606@colbyconsulting.com> References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: Hello John, FYI, since you prompted me a year or two ago to ensure I was backing up my home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in beta for over a year. I find it works perfect for me and I used it to keep my main pc synced to a external usb drive. I sync about 50 GB of files and all is fine. I am looking forward to clicking your links below., thanks Mark 2009/9/15 jwcolby > I ran across this today. I use Sync Toy to synchronize directories for > various purposes - photos > between the server and my laptop, backup files between the backup directory > and an external drive > etc. It seems that Sync Toy is a pretty face over a sync framework, which > you can program to. > > http://msdn.microsoft.com/en-us/sync/bb887623.aspx > > http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx > > http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx > > http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 18 19:29:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 18 Sep 2009 20:29:08 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: <4AB425D4.8020108@colbyconsulting.com> Mark, In fact I think 2.0 is now released. I am using it as well to sync a local directory to an external hard drive. It does work really well. The links are for programming with the Sync framework, the same thing that MS used to build SyncToy, but from inside of your C# or VB.net apps. John W. Colby www.ColbyConsulting.com Mark Breen wrote: > Hello John, > FYI, since you prompted me a year or two ago to ensure I was backing up my > home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in > beta for over a year. I find it works perfect for me and I used it to keep > my main pc synced to a external usb drive. I sync about 50 GB of files and > all is fine. > > I am looking forward to clicking your links below., > > thanks > > Mark > > > 2009/9/15 jwcolby > >> I ran across this today. I use Sync Toy to synchronize directories for >> various purposes - photos >> between the server and my laptop, backup files between the backup directory >> and an external drive >> etc. It seems that Sync Toy is a pretty face over a sync framework, which >> you can program to. >> >> http://msdn.microsoft.com/en-us/sync/bb887623.aspx >> >> http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx >> >> http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx >> >> http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Sat Sep 19 13:43:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 14:43:48 -0400 Subject: [dba-VB] c# - Monitor folder and run application Message-ID: <4AB52664.7060504@colbyconsulting.com> Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com From max.wanadoo at gmail.com Sat Sep 19 13:51:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 19 Sep 2009 19:51:23 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> JC, no code to hand, but as you say this is dead easy if run from a form. Set the Timer to the frequency. With the InTimer() Do a dir() to see if its there. End of heartache Waiting for my Lottery numbers to come up... Have you any code for that..I will swap... Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 19 September 2009 19:44 To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Sep 19 14:16:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 15:16:53 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> References: <4AB52664.7060504@colbyconsulting.com> <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> Message-ID: <4AB52E25.2010705@colbyconsulting.com> I looked at the monitor piece awhile back and it turns out there is an object in .Net that does the monitor for you. It even generates an event for new items in the dir IIRC. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, no code to hand, but as you say this is dead easy if run from a form. > Set the Timer to the frequency. > > With the InTimer() > Do a dir() to see if its there. > End of heartache > > Waiting for my Lottery numbers to come up... > > Have you any code for that..I will swap... > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 19 September 2009 19:44 > To: VBA > Subject: [dba-VB] c# - Monitor folder and run application > > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to > complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a > single solution. > > This doesn't appear too tough given all the code snipits out there but why > reinvent the wheel if you > have done it. > From stuart at lexacorp.com.pg Sat Sep 19 17:14:56 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 20 Sep 2009 08:14:56 +1000 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4AB557E0.16460.E42B361@stuart.lexacorp.com.pg> You should use the WaitForSingleObject API call. I've got several examples in PowerBasic and VBA. which do things like monitor your browser cache and detect when cookies are added/changed but not in .Net. I'd guess that googling that call should turn up suitable examples in c#. -- Stuart On 19 Sep 2009 at 14:43, jwcolby wrote: > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a single solution. > > This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you > have done it. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Sep 19 21:05:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 22:05:41 -0400 Subject: [dba-VB] XML and class serialization Message-ID: <4AB58DF5.50204@colbyconsulting.com> In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com From jdthree at frontiernet.net Sun Sep 20 07:24:24 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Sun, 20 Sep 2009 08:24:24 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <001e01ca39ed$4a3e26e0$deba74a0$@net> Hello John et al, I've been away from coding for quite a while but I'm back into it again. John you're looking for the FileSystemWatcher in System.IO. I don't have any code for you but what you'll find if you Google it will get you what you need. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 2:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Sun Sep 20 09:39:32 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Sun, 20 Sep 2009 18:39:32 +0400 Subject: [dba-VB] XML and class serialization In-Reply-To: <4AB58DF5.50204@colbyconsulting.com> References: <4AB58DF5.50204@colbyconsulting.com> Message-ID: <006c01ca3a00$2ef946e0$8cebd4a0$@spb.ru> Hi John, What "HUGE overhead" do you mean? Do you mean XML file size? BTW, you can try to serialize collections' and objects' into binary http://www.java2s.com/Code/CSharp/File-Stream/CSerialization.htm and JSON http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-Data ContractJsonSerializer.aspx files/strings. As for XML processing in memory - it is very effective and is "out-of-the-.NET-box" - I suppose that in memory XML files are stored very "tightly packed" without any overheads - they (I guess) are more like hierarchical in memory databases (remember IMS?) than plain files IOW in memory XML processing using XPATH etc. could(/should?) work quicker than SQL processing of loaded in memory relational databases... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, September 20, 2009 6:06 AM To: Access Developers discussion and problem solving; VBA Subject: [dba-VB] XML and class serialization In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4441 (20090919) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Mon Sep 21 08:42:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 09:42:13 -0400 Subject: [dba-VB] C# get project directory Message-ID: <4AB782B5.2010306@colbyconsulting.com> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Mon Sep 21 09:28:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 21 Sep 2009 18:28:46 +0400 Subject: [dba-VB] C# get project directory In-Reply-To: <4AB782B5.2010306@colbyconsulting.com> References: <4AB782B5.2010306@colbyconsulting.com> Message-ID: <009c01ca3ac7$d825a890$8870f9b0$@spb.ru> Hi John, Will that work for you?: string appFullPath = Application.ExecutablePath; string appFolder = System.IO.Path.GetDirectoryName(appFullPath); System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(appFolder); Console.WriteLine(folder.Parent.Parent.Parent.FullName); BTW, if you're planning to have your (sample) application easily deployed using XCOPY then it's better to not use the above approach as it assumes that your executable will have "some useful stuff" three levels up in the directory tree - you'd better use assumption that your app has "some useful stuff" in predefined (sub-)...sub-directories relative to the executable's directory. I usually create a \Bin folder under solution's folder - that will be E:\C# Projects\Grade Calculator\Bin for your case and I set both Debug and Release mode executables built in this folder (Solutions Explorer->Project->Right-Click->Properties->Build->Output Path). Then all "useful stuff" can be placed in custom \Bin folder (E:\C# Projects\Grade Calculator\Bin) and its subfolders, and XCOPY deployment will always work OK. I'd also note that you use Application object to get exe fullpath - that works by default for WinForms apps but is unavailable in console and other types of apps by default: yes, you can set a reference to System.Windows.Forms in console application but that would be an overkill - I usually use this function: public static string ExecutingAssemblyFullPath { get { Assembly asm = Assembly.GetExecutingAssembly(); AssemblyName origCodebase = asm.GetName(false); string codeBase = origCodebase.CodeBase; if (codeBase.StartsWith(@"file:///") || codeBase.StartsWith(@"file:\\\")) codeBase = codeBase.Substring(8); return codeBase; } } I have got made it quite some time ago, and it always work well, although there could be even better/shorter solution now... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 5:42 PM To: VBA Subject: [dba-VB] C# get project directory I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4442 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4443 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Mon Sep 21 09:48:38 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 16:48:38 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Another method with strings only is a bit long winded: string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; or - applying a bit of the good old DOS syntax: string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 10:02:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 11:02:27 -0400 Subject: [dba-VB] C# get project directory In-Reply-To: References: Message-ID: <4AB79583.50009@colbyconsulting.com> Gustav, I was hoping to find a property of some object that told me the solution base directory. It SEEMS SO LOGICAL. Sigh. I have every intention of creating a directory of my own to hold some files that this thing will create. I just want that directory to be portable (change with the location of the solution) and as close to the base solution path as possible. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. Thanks for this solution. It definitely should work. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Another method with strings only is a bit long winded: > > string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; > > or - applying a bit of the good old DOS syntax: > > string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; > > For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: > > string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); > > /gustav > > >>>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> > I want to set up a directory to store files directly under the project directory. I can get the exe > directory using Application.ExecutablePath but that is clear down in the bin directory etc. > > I want THIS path: > > E:\C# Projects\Grade Calculator <<<<< > > I have Googled till I am blue in the face and all I end up with is (where the exe is): > > D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug > > Any help appreciated. > > Thanks, > From Gustav at cactus.dk Mon Sep 21 10:27:47 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 17:27:47 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Oh, you get used to it. It has the advantage(?) too, that when you switch VS from Debug mode to Release mode, your app path follows. /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 17:02:27 >>> .. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. From jwcolby at colbyconsulting.com Mon Sep 21 12:46:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 13:46:08 -0400 Subject: [dba-VB] Merge rows Message-ID: <4AB7BBE0.6030807@colbyconsulting.com> My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From andy at minstersystems.co.uk Mon Sep 21 13:41:44 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 21 Sep 2009 19:41:44 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7BBE0.6030807@colbyconsulting.com> Message-ID: <44483FF525534000830F5F5010D5B73E@MINSTER> Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 14:10:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 14:10:09 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <4AB7BBE0.6030807@colbyconsulting.com> <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <893A33B2B6104479894E1266CAF81871@danwaters> I'd stick with a single preference for a car or a drink, but for women you'll need a subtable. Hope this helps! Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Monday, September 21, 2009 1:42 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Merge rows Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 15:51:46 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 15:51:46 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <893A33B2B6104479894E1266CAF81871@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> Message-ID: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> This is a tough question - not technically difficult but what's tough is actually making the choice! I think you'll need to get some guidance from your customer as to which single record to keep (the latest one?), or should you put the contents of all the related cells into one cell and delete the other rows? Or something else? This probably doesn't help . . . Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 16:37:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:37:41 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <4AB7F225.8010703@colbyconsulting.com> ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > From max.wanadoo at gmail.com Mon Sep 21 16:39:58 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 22:39:58 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F225.8010703@colbyconsulting.com> References: <44483FF525534000830F5F5010D5B73E@MINSTER> <4AB7F225.8010703@colbyconsulting.com> Message-ID: <4ab7f2ec.0a1ad00a.5698.26d3@mx.google.com> Well that's sorted then...give up the wife! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:38 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 16:54:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:54:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> Message-ID: <4AB7F632.5020803@colbyconsulting.com> Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan From DWUTKA at Marlow.com Mon Sep 21 17:01:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 21 Sep 2009 17:01:22 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> Message-ID: Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Mon Sep 21 17:04:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:04:56 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Are you saying that the FIRST JohnColby record you encounter is therefore the MASTER and the rest JohnColby record's data gets to update the MASTER? So, Rec 1. John Colby likes Fish (at the time he might have liked fish) Rec 2. John Colby does not like fish (might have been asked some time later, after a bad meal) Which takes precedence? Do you NOT overwrite existing data. Or DO you ? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:55 To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Sep 21 17:11:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:11:49 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Sep 21 17:18:13 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 21 Sep 2009 15:18:13 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: Merging them into one flat John Colby record is truly ugly, John. Why not separate them into a polls table (unless, of course, that's where you have them already) and use the John Colby record PK to connect them? Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 2:55 PM To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 17:31:20 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:31:20 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Message-ID: <4AB7FEB8.6080403@colbyconsulting.com> > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max From jwcolby at colbyconsulting.com Mon Sep 21 17:35:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:35:51 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4AB7FFC7.5080605@colbyconsulting.com> Well, the issue is that the client wants to do things like: Give me 5 million records where the income is in this range, has kids in this age range, has a dog and exercises. Now... You have two john colby records. The "exercises" info is in the first record, and the "has a dog" is in the second record. You just dropped John Colby from the selection because the AND failed. It would have succeeded had all the data been in one record. Essentially this table IS a Polls table. Someone just consolidated a ton of poll info into 640 fields a long time ago. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Merging them into one flat John Colby record is truly ugly, John. Why > not separate them into a polls table (unless, of course, that's where > you have them already) and use the John Colby record PK to connect them? > > Charlotte Foust > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, September 21, 2009 2:55 PM > To: dwaters at usinternet.com; Discussion concerning Visual Basic and > related programming issues. > Subject: Re: [dba-VB] Merge rows > > Dan, > > In fact there are 50 million records in the table (though not that many > "duplicates") so there is no "making a decision". Basically I have to > take row one and update it with row 2, 3, 4... Delete row 2,3,4... > > This is basically a table of "polls" that people have taken, with ~600 > fields where there may or may not be information about doing, wanting or > having that thing. Everything from information about the boat you own > to the electronics you own, to the medicine you take, whether you own a > dog or cat, hunt, fish etc. In order to get in the database you have to > have volunteered the information somewhere along the line. But you > might have taken several different polls at different times. > Thus one record might have the electronics you own, another the medicine > you take, and you don't even own a boat so those fields contain nothing. > > Like that. > > I just want to take all the John Colby records and merge them into a > single John Colby record, deleting all the extras when I am done. > > Of course this is one reason for my other question about getting rid of > any fields where there is no information in any record. If I am going > to process 50 million records, it would be good to not have to process > any fields where there is no info to merge. > > The other reason for the other question is that doing a table scan > against 50 million records with 640 fields is just plain going to take > longer than a table scan against 50 million records with only 400 > fields. It comes down to a matter of disk sectors to load. And with > 640 fields you cannot have indexes against all of them, so you are going > to be doing table scans. > > I just did a test where I did a Count() where... on a non-indexed field > and it took 1:18. So just doing these counts on all 640 fields could > take awhile. I will be counting and logging the count in my data > dictionary table. > > And off we go... > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 21 17:45:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:45:48 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FEB8.6080403@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> <4AB7FEB8.6080403@colbyconsulting.com> Message-ID: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Well, better brains then me will come up with the answer (are you there, Charlotte). What I would do is 1. Add an AutoNum field to the table - let that run overnight. This is good, as well you know. And you can make use of this from this point on. 2. set up the find-dupes wizard based on the natural key (!). 3. Extract the code from this. 4. put it into a module so that only those duplicate records are selected in a recordset 5. loop through the recordset. 6. do a secondary recordset based on the natural key where the autonum is not the same as the main record being looked at. 7. loop through the secondary records if found 8. update the main record. 9. delete the secondary record 10. move to next secondary record until none are left. 11. go to next main record. Now, I am not saying that is the most efficient. You may be able to do all this in an SQL statement. But, hey! At least I am trying to help. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 23:31 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Sep 21 17:55:29 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 22 Sep 2009 08:55:29 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Message-ID: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Mon Sep 21 17:59:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:59:37 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> Message-ID: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> 50 Million! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 21 September 2009 23:55 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 20:19:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 21:19:08 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> Message-ID: <4AB8260C.7090402@colbyconsulting.com> Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > From shamil at smsconsulting.spb.ru Tue Sep 22 01:59:47 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 10:59:47 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8260C.7090402@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> Message-ID: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Hi John, 3.086 million records seems to be manageable to be "deduped" in one go provided the source 50 million records table is already prepared. For "deduping" you can use 1. One stored procedure which: a) will insert new individual attributes' record and b) will update not null values for existing individual attributes' record. 2. One C#/VB.NET function to get records from the source 50 million records' table and to "feed" the above stored procedure. That's a rough plan. Of course developing SP with 640 parameters and C#/VB.NET code working with that SP is not an easy manual work - that SP and code could be generated. Not sure yet here that SP can have 640 parameters therefore it may be needed to have several SPs. To get source rows a T-SQL select expression with ROW_NUMBER() function should be used to have relatively small subsets of record batches to process. This selection can be done using multi-threaded C#/VB.Net code . Do you have any index over source 50 million rows table? - ROW_NUMBER() function will need such an index (I'm talking MS SQL 2005 here, maybe in MS SQL 2008 ROW_NUMBER() can be used without any indexes)... When source data deduped into ~3.086 million records table then that "small" table can get a few the most selective columns' indexes, and probably one compound natural key clustered index built using the most selective (/the most often used in queries) columns. If there are a few such columns at least one of which is used in all the queries then your application response time should be finally measured in seconds... I hope... That's basically it. Please correct me if you suppose that the above plan can't be fulfilled because of some reasons I'm missing here. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4445 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 22 03:09:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 22 Sep 2009 10:09:37 +0200 Subject: [dba-VB] Merge rows (now: seriously OT) Message-ID: So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... From jwcolby at colbyconsulting.com Tue Sep 22 07:13:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:13:07 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8BF53.70902@colbyconsulting.com> Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4445 (20090921) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 07:20:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:20:59 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8C12B.2040406@colbyconsulting.com> I think you are right in most regards. Copying all of the dupes out to a new table for deduping is definitely a must. After that I think it will be a case of iterating the recordset grabbing sets of dupe records, updating, deleting the duplicates, moving on. In fact perhaps even updating out to a second table, i.e. read from one write to another. The destination table will hold the resulting deduped recordset. As I mentioned in a previous email, the string length limitation will force me to process subsets of fields at a time. I also have to log all of the records being deleted so that I can delete those records back in my original source table. At least this kind of puzzle is fun to me. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil From max.wanadoo at gmail.com Tue Sep 22 08:04:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:04:35 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8C12B.2040406@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: JC, I dont understand what strings you are manipulating...I am confused by the seemingly conflicting postings. Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a value of true/false or is the fieldname = "Fld1" and the contents "Has Dog"? Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. If the recordsource is index on key and accessed in that order, then you have only to store the previous entry and change it as the recname changes. max On 22/09/2009, jwcolby wrote: > I think you are right in most regards. Copying all of the dupes out to a > new table for deduping is > definitely a must. After that I think it will be a case of iterating the > recordset grabbing sets of > dupe records, updating, deleting the duplicates, moving on. In fact perhaps > even updating out to a > second table, i.e. read from one write to another. The destination table > will hold the resulting > deduped recordset. > > As I mentioned in a previous email, the string length limitation will force > me to process subsets of > fields at a time. > > I also have to log all of the records being deleted so that I can delete > those records back in my > original source table. > > At least this kind of puzzle is fun to me. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million >> records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working >> with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be >> needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . >> Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in >> MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that >> "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application >> response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 08:24:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 09:24:59 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: <4AB8D02B.8070508@colbyconsulting.com> Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 08:31:09 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:31:09 +0100 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: On the contrary, it looks very simple to do in code, but i dont know about creating a complex sql string like that, if it gets that complicated I just do it in code - maybe a tad slower but what the heck, do something else and just let it run. strip some records into an mdb and email me if you want. max On 22/09/2009, jwcolby wrote: > Max, > > > JC, I don't understand what strings you are manipulating... > > In order to do this you (or at least I) pretty much have to use dynamic > queries. Create a string > variable, then build up the update SQL statement. That SQL string cannot be > more than 4K long IIRC. > > Well imagine 640 fields with field names like (a real field name) > > "medication_taken_for_adhd_adderall" or > "receive_info_on_health_related_bladder_control". > > Obviously the SQL string is going to get lengthy! > > > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a > value of true/false > > Yes, generally the field contains a 'Y' or an empty string ''. In some > cases (rare) the field has > various codes or numbers. For example there is a field for income with > codes '1' through 'T' with > each one being an income band of $5K. > > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with > subsequent JCRecords as you previously indicated. > > Yes, except you can't just "overwrite it", you have to update it IF there is > data in the next record. > > Two records > > Has_Dog, Has_Cat, Boat_Length > 'Y','','' > '','','42' > > If you simply "overwrite" the first with the second then you lose the fact > that the person has a dog > because you overwrote that field in the first record with an empty string > from the second record. > > EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If > so then update the first > record with the actual data containing field from the second record. But do > NOT update the fields > where the second record does not contain data. > > It starts to look more complex eh? > > Additionally, once this "merge" is done, all the records containing "merged > data" have to be > retained. All the records which were merged in to other records have to be > deleted. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> JC, I dont understand what strings you are manipulating...I am >> confused by the seemingly conflicting postings. >> Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a >> value of true/false >> >> or is the fieldname = "Fld1" and the contents "Has Dog"? >> >> Also, if the first JCRecord is going to be the master, then just >> overwrite the contents with subsequent JCRecords as you previously >> indicated. If the recordsource is index on key and accessed in that >> order, then you have only to store the previous entry and change it as >> the recname changes. >> >> max >> >> >> On 22/09/2009, jwcolby wrote: >>> I think you are right in most regards. Copying all of the dupes out to a >>> new table for deduping is >>> definitely a must. After that I think it will be a case of iterating the >>> recordset grabbing sets of >>> dupe records, updating, deleting the duplicates, moving on. In fact >>> perhaps >>> even updating out to a >>> second table, i.e. read from one write to another. The destination table >>> will hold the resulting >>> deduped recordset. >>> >>> As I mentioned in a previous email, the string length limitation will >>> force >>> me to process subsets of >>> fields at a time. >>> >>> I also have to log all of the records being deleted so that I can delete >>> those records back in my >>> original source table. >>> >>> At least this kind of puzzle is fun to me. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Shamil Salakhetdinov wrote: >>>> Hi John, >>>> >>>> 3.086 million records seems to be manageable to be "deduped" in one go >>>> provided the source 50 million records table is already prepared. >>>> >>>> For "deduping" you can use >>>> >>>> 1. One stored procedure which: >>>> a) will insert new individual attributes' record and >>>> b) will update not null values for existing individual attributes' >>>> record. >>>> >>>> 2. One C#/VB.NET function to get records from the source 50 million >>>> records' >>>> table and to "feed" the above stored procedure. >>>> >>>> That's a rough plan. >>>> >>>> Of course developing SP with 640 parameters and C#/VB.NET code working >>>> with >>>> that SP is not an easy manual work - that SP and code could be >>>> generated. >>>> >>>> Not sure yet here that SP can have 640 parameters therefore it may be >>>> needed >>>> to have several SPs. >>>> >>>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>>> should be used to have relatively small subsets of record batches to >>>> process. This selection can be done using multi-threaded C#/VB.Net code >>>> . >>>> Do >>>> you have any index over source 50 million rows table? - ROW_NUMBER() >>>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>>> MS >>>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>>> >>>> When source data deduped into ~3.086 million records table then that >>>> "small" >>>> table can get a few the most selective columns' indexes, and probably >>>> one >>>> compound natural key clustered index built using the most selective >>>> (/the >>>> most often used in queries) columns. If there are a few such columns at >>>> least one of which is used in all the queries then your application >>>> response >>>> time should be finally measured in seconds... I hope... >>>> >>>> That's basically it. >>>> >>>> Please correct me if you suppose that the above plan can't be fulfilled >>>> because of some reasons I'm missing here. >>>> >>>> Thank you. >>>> >>>> >>>> -- >>>> Shamil >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 08:36:28 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 17:36:28 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8BF53.70902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> Message-ID: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Hi John, OK, but in proposed solution there is no need to "string together 640 fields". Or do you mean that one static(/statically compiled) T-SQL statement has some limitations? Then you can make a view with two chars length of column names. <<< the client wants to ADD more fields. >>> Well, then you can create extension table for new fields. BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query your database. I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle such a table with 640 fields. Can you publish this table structure plus say 100 records with cleaned-up or hashed name, address, phone and other personal information? Thank you. -- Shamil P.S. <<< This is truly a database from hell. >>> Yes. Some people supposes that all the computing technology is coming directly from the Hell - they promise a lot but they take even more out - your life... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 4:13 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > From drawbridgej at sympatico.ca Tue Sep 22 08:57:50 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 09:57:50 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FFC7.5080605@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: John, For clarity, how do you identify a specific John Colby? OK so may be there is only 1 John Colby, but how would you distinguish (and with what certainty) to Tom Smith's for example. Is there some defined population of individuals that get polled and repolled? Jack From jwcolby at colbyconsulting.com Tue Sep 22 09:00:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:00:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Message-ID: <4AB8D871.6060001@colbyconsulting.com> Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 09:10:29 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:10:29 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Hi John, I suppose you can use static (compiled) SP - I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Procedure MySP ( @firstName nvarchar(50), @lastName nvarchar(50), --- @f1 int, ... @fn nvarchar(80) ) set nocount on declare @testCount int select @testCount = count(*) from MyTable where FirstName = @firstName and LastName = @lastName if (@testCount = 0) begin -- insert End else begin update myTable set f1 = IsNull(@f1, f1), ... fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end where FirstName = @firstName and LastName = @lastName end set nocount off Try. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:25 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil From shamil at smsconsulting.spb.ru Tue Sep 22 09:17:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:17:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <<< you lose the data in the first. >>> John, Our postings crossed - I have posted solution for the above issue in my recent posting. <<< that there will be 50 million records >>> But you say there are "just" 3+ millions when the data are "deduped" - that should be not a big issue for the joins on your mighty computers (BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:00 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 09:21:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:21:15 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: <4AB8DD5B.2050906@colbyconsulting.com> Jack, I was leaving that out to prevent obscuring the points I wanted to discuss. In fact what happened is that I received a text file, fixed width that contained all of this data in it. The file contained 65 million records that included fields for first name, last name, address, city, state, and zip. I loaded it into a table, with an autonumber PKID. I then pulled the name / address info out into a second table and ran it through the address validation program I have discussed in the past (virtual machines etc). That process causes 15 million records to fall out as undeliverable. 50 million records remained, the records we discuss here. So I have two tables, one with PK / name / address and the second with PK / poll information data. What I actually do to group the records is in the Address table is that I created a HashPerson field, binary(250). I then ran the first/last/addr/zip5/zip4 through a hash function (in SQL Server) which returned a repeatable unique number for each such string of data input. So now I have this hash field which contains exactly the same binary representation for every record with the same first/last/addr/zip5/zip4. So I can group on the HashPerson to count duplicates, I can select on HashPerson to get the PKIDs of all the records for a single person etc. Obviously I am not effectively dealing with issues like "Jack Colby" and "John Colby" at the same address. Same person, nicknames. I have not even attempted to do such things. Nor mis-spellings, minor variations in address etc. These things DO exist, but statistically they are such a small percentage of the total, and I had so much else to deal with, that it made no sense to go there yet. Maybe some day. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > John, > > For clarity, how do you identify a specific John Colby? OK so may be there > is only 1 John Colby, but how would you distinguish (and with what > certainty) to Tom Smith's for example. > Is there some defined population of individuals that get polled and > repolled? > Jack > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 09:29:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:29:37 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Message-ID: <4AB8DF51.1050106@colbyconsulting.com> >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil From fuller.artful at gmail.com Tue Sep 22 09:42:54 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 22 Sep 2009 10:42:54 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> That's almost exactly what I would propose, JC, with perhaps a small revision. I was thinking that you could use a pair of recordsets, the first consisting of the first and only the first record with value xxx, and the second consisting of all the other instances of xxx. Then you can skip through the second recordset and compare each record with the record in the first recordset, updating only the single record with data from the current row in the second recordset. The idea is to update only one record in each group. Once that is done, then you can select top 1 of each group and group by the identifier. A Select Into would give you only the first record from each group. You could trash or rename the large table and the target table created by the Select Into would contain only the rows of interest, It occurs to me that you could probably even generate the compare/update statements, since they will be almost identical save for the given fieldname. The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. hth, Arthur From cfoust at infostatsystems.com Tue Sep 22 09:45:22 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:45:22 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Hmmn ... If wiseGuy = 'Gustav' The Kill(wiseGuy) Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 22, 2009 1:10 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 09:52:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 15:52:36 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:51:00 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:51:00 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: John, I'm confused. Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records, perhaps in a union query, that contained both answer 1 and answer 2? Is the client wanting to query across polls, so that if the respondent answers answer1 in one poll and answer2 in another, they want to see that client? It sounds like totally meaningless information (not an uncommon request, in my experience). Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:00 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two > chars length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to > query your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework > handle such a table with 640 fields. Can you publish this table > structure plus say 100 records with cleaned-up or hashed name, > address, phone and other personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more > out - your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try > to string together 640 fields with long field names (and they are > loooong) you end up with an error message from SQL Server that the > string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one >> go provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code >> working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() >> function should be used to have relatively small subsets of record >> batches to process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe >> in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably >> one compound natural key clustered index built using the most >> selective (/the most often used in queries) columns. If there are a >> few such columns at least one of which is used in all the queries >> then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be >> fulfilled because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows >> 3.086 million individduals with multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 09:55:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:55:13 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> Message-ID: <4AB8E551.8050902@colbyconsulting.com> >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Tue Sep 22 09:59:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:59:51 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> Message-ID: <4AB8E667.6010707@colbyconsulting.com> Arthur > The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. And the answer is "nothing". There is no way to determine date order of these records, they simply did not have that data in the original records. Thus any answer is equally valid. Take the FIRST answer and keep it. Never update the first record FieldN if there is already data in that field. This data is full of incongruities like this. Income could rise or fall, children could leave home or die, spouse could divorce or die. We cannot discover any of this kind of thing. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's almost exactly what I would propose, JC, with perhaps a small > revision. I was thinking that you could use a pair of recordsets, the first > consisting of the first and only the first record with value xxx, and the > second consisting of all the other instances of xxx. Then you can skip > through the second recordset and compare each record with the record in the > first recordset, updating only the single record with data from the current > row in the second recordset. The idea is to update only one record in each > group. Once that is done, then you can select top 1 of each group and group > by the identifier. A Select Into would give you only the first record from > each group. You could trash or rename the large table and the target table > created by the Select Into would contain only the rows of interest, > It occurs to me that you could probably even generate the compare/update > statements, since they will be almost identical save for the given > fieldname. > > The only potential fly in the ointment that I can see is What to do if the > records being compared both contain values that do not match, i.e. A.Has_Dog > = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data > collections. > > hth, > Arthur > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:58:55 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:58:55 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Sep 22 10:01:51 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 22 Sep 2009 10:01:51 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Message-ID: With VB 6 yes. And I'm sure you could do something very similar in VB.Net or C#. It's just API calls. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, September 21, 2009 5:12 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] c# - Monitor folder and run application Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Sep 22 10:17:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 11:17:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4AB8EA7D.1080401@colbyconsulting.com> Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust From max.wanadoo at gmail.com Tue Sep 22 10:42:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:42:35 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> > Does that clarify it for you? It does, so really with the Tabs JIT you are not much better off. With my On-Demand approach, only data that is wanted there-and-now is loaded each time you navigate between records AND furthermore, I give them the option of a blank sub-form which means there is no extraneous data overhead when navigating unless the user wants it. I think my On-Demand approach is better for lots of reasons, but if your are happy with your JIT-Tabs approach then I am happy for you. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 22 September 2009 15:59 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 10:50:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:50:17 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4ab8f27c.0a04d00a.2c43.215f@mx.google.com> No you don't! Sheeesh! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 15:00 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <00de01ca3b9c$e8b0fa90$ba12efb0$@spb.ru> <<< then do the entire thing in memory, updating the first record with only "data containing fields" >>> John, I suppose that MS SQL is "smart enough" to do that "dirty work" for you - if you update a field with the same value it has in the case the updating value is NULL or (NULL or EMPTY string for char data) as it's done in SP I outlined then MS SQL will not make that field update at all... <<< Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. >>> ...you can do all that in one SP, which I have got outlined in my previous posting <<< This might be a good thing to do in C# to learn ADO stuff. >>> Yes, but that would be rather simple (although large because of 640 fields) function, which will use: SqlConnction, SqlCommand and SqlDataReader Remark: as I mentioned previously you can use ROW_NUMBER() T-SQL function to organize getting records' batches to be processed, say 1000 or at a time, and getting that batches can be made as a multi-threaded function... <<< Relatively speaking, this would no doubt FLY. >>> ...then it could fly, although I can't say for sure because "flying program" is a relative term heavily depending on one's point of view/experience :) --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:30 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8E551.8050902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> Message-ID: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <<< However the results should be ... satisfying. ;) >>> Yes, but for 3+ millions records your current system looks more than enough from here. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:55 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8EA7D.1080401@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> Message-ID: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <<< Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) ... The entire point is to make the process faster and faster and faster. >>> John, If you have many [has Kids], [HasCat], [HasDog] kind of fields you can consider combining them into bit array fields, for predefined range values you can make say half-byte groups bit array fields values... by thus minimizing the size of your table record... --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 22 11:09:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:09:59 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f719.0702d00a.6422.15b2@mx.google.com> Immer! LOL Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 22 September 2009 09:10 To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:14:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:14:07 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> Message-ID: <4AB8F7CF.9010304@colbyconsulting.com> Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max From jwcolby at colbyconsulting.com Tue Sep 22 11:16:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:16:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> Message-ID: <4AB8F87A.3090701@colbyconsulting.com> Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 11:30:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:30:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> Message-ID: <4AB8FBB0.3060904@colbyconsulting.com> This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil From max.wanadoo at gmail.com Tue Sep 22 11:29:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:29:54 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8F7CF.9010304@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> Message-ID: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> > With your approach leaving the subforms bound is difficult to say the least. As difficult as one line of code Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:14 To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 11:33:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 20:33:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8F87A.3090701@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <4AB8F87A.3090701@colbyconsulting.com> Message-ID: <00e601ca3ba2$5c221a40$14664ec0$@spb.ru> John, Yes, that is huge. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From drawbridgej at sympatico.ca Tue Sep 22 11:35:40 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 12:35:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <61CB308F5EE746B69904DD47CBF50795@AMDXP> My initial thought was bit fields also, until I saw boat_length and income identified by ranges. -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 12:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:39:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:39:37 -0400 Subject: [dba-VB] Counting data elements Message-ID: <4AB8FDC9.1090004@colbyconsulting.com> I am in the process of counting data elements in my database from hell fact table. It turns out there are 584 fields in the table. No indexes (I created a new table copy in a new database to do this stuff) and each field count is taking about 0:1:40. When I am done with this I will have a list of fields and the count of data elements in each field. The objective is to see if I can delete some of the fields because they contain no data elements. From reading the table definition spreadsheet I got from the client, I am reasonably certain that there are completely empty fields. Not sure how many. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 11:40:45 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:40:45 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> Message-ID: <4AB8FE0D.4010704@colbyconsulting.com> Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 12:03:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 13:03:50 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <61CB308F5EE746B69904DD47CBF50795@AMDXP> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <61CB308F5EE746B69904DD47CBF50795@AMDXP> Message-ID: <4AB90376.2040103@colbyconsulting.com> Yes, there are fields with real data in them. Mostly they are just Y or nothing. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > My initial thought was bit fields also, until I saw boat_length and income > identified by ranges. > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 12:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 13:35:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 19:35:03 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8FE0D.4010704@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> Message-ID: <4ab91918.1c05d00a.04a7.3583@mx.google.com> Only one sub form is loaded at any one time. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:41 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 14:03:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 23:03:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <00f401ca3bb7$676c1170$36443450$@spb.ru> John, You can use bitmask(/bitwise) operations - and you can use symbolic constants/variables for bits to not get "seriously nervuos". How many Boolean value fields do you have in your table? -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 14:20:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 15:20:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f401ca3bb7$676c1170$36443450$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> Message-ID: <4AB9239A.1010205@colbyconsulting.com> Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 15:15:13 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 00:15:13 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9239A.1010205@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> Message-ID: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - that will be BINARY(50) in T-SQL. Although I'm not currently sure you can implement bitwise logical operations solely using T-SQL: but I suppose you can get subset of data using non-Boolean where clause, and then scan it in C#/VB.NET and filter using bitwise C# operations/functions over bit arrays. Something like that should work I suppose. Please correct me if I'm wrong. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 11:21 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 15:22:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:22:16 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab91918.1c05d00a.04a7.3583@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> Message-ID: <4AB931F8.8010407@colbyconsulting.com> Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 15:25:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:25:06 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB932A2.6050301@colbyconsulting.com> Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: <00f601ca3bc8$62896570$279c3050$@spb.ru> Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB932A2.6050301@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> Message-ID: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> John, OK, someday you can make it working/flying using C# with your current DB size "shrinked" ~8 times and your current processing time shortened X times (to an order of magnitude? - wild guess)... ... but do not wait until you'll get fluent with C# - it's time consuming as everybody's experience shows - and it's not needed to get the outlined above results - just do it - how to do it seems to be clear now?... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 12:25 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 16:23:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 17:23:35 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> Message-ID: <4AB94057.3080704@colbyconsulting.com> Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Sep 22 16:48:02 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 07:48:02 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: > > John, > > > > You can use bitmask(/bitwise) operations - and you can use symbolic > > constants/variables for bits to not get "seriously nervuos". > > > > How many Boolean value fields do you have in your table? > > > > -- > > Shamil > > > > -----Original Message----- > > From: dba-vb-bounces at databaseadvisors.com > > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Tuesday, September 22, 2009 8:31 PM > > To: Discussion concerning Visual Basic and related programming issues. > > Subject: Re: [dba-VB] Merge rows > > > > This is an idea worthy of consideration. The problem is translating the > > client's original field > > name to a bit in the bit field when he sends me an order. > > > > The client has a spreadsheet of these fields and sends me orders with the > > field names (or more often > > a "record number" in the spreadsheet). I look down through the > spreadsheet > > to find the record > > number, translate that to the field name, then drop that field name into > the > > where clause of a query. > > > > It would be fascinating to have an already translated bit map of these > > fields, and able to do these > > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > > Bit69) OR (BIT190 OR > > Bit191) etc. > > > > Not exactly readable, but I have to assume that it would be much faster. > It > > would make me seriously > > nervous though that I actually got the right bits. As it is now it is > > "plain English", you can read > > the field names from the SQL statement. I would definitely have to have a > > well tested tool that > > performed the bit lookup and wrote the where(). > > > > Can you index bits? If not you would turn the actual query into a ton of > > table scans, though as you > > mention the size of the table would shrink dramatically. It might > actually > > be possible to get the > > entire table into memory if each field (that contained just 'Y' values) > was > > a single bit. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Shamil Salakhetdinov wrote: > >> <<< > >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > > HASCat) > >> OR ...) > >> ... > >> The entire point is to make the process faster and faster and faster. > >> John, > >> > >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > >> consider combining them into bit array fields, for predefined range > values > >> you can make say half-byte groups bit array fields values... by thus > >> minimizing the size of your table record... > >> > >> --Shamil > > > > _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Sep 22 17:06:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 23:06:57 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB931F8.8010407@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> <4AB931F8.8010407@colbyconsulting.com> Message-ID: <4ab94aa8.0a04d00a.02ca.ffff9409@mx.google.com> I can see that in your situation. In mine it is different. Horses for courses. If I were to load and leave loaded all the subforms then I would be back where I started. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 21:22 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 21:57:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 22:57:39 -0400 Subject: [dba-VB] I'm baffled Message-ID: <4AB98EA3.9070806@colbyconsulting.com> I am trying to return a count of data items in a field of my table. When I directly execute the following I get a count: SELECT COUNT(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_code <> '') The count is 15675589. When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of records in the table. The SQL is: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (@fldname <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' As you can see everything is the same except @FldName which is being read out of a cursor of field names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to know why. Somehow I need to "translate" @FldName to the actual name of the field. What is the syntax to get what I need here? TIA, -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Sep 23 00:25:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 15:25:53 +1000 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Household_Occupation_Code is a fieldname (an object) @fldname is a string Your SP version evaluates to: SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ('Household_Occupation_Code' <> '')) rather than SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_Code <> '')) To interpret the variable, you could build your query dynamically and then EXECute it in your SP. Something like: EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + 'FROM dbo.tblHSIDModified ' + 'WHERE (" + @fldsname + '<> ''''))' -- Stuart On 22 Sep 2009 at 22:57, jwcolby wrote: > I am trying to return a count of data items in a field of my table. When I directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' > > As you can see everything is the same except @FldName which is being read out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 01:06:50 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:06:50 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> Message-ID: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Hi Stuart, We're talking C#/VB.NET here? - try test code in P.S - =========== one billion =========== of bitwise AND operations for ============================ two 400 bits long bit arrays ============================ takes about ==================================== 1 minute 4 seconds 260 milliseconds ==================================== on my "mere mortals PC" - two years old Dual Core Pentium. Please correct me if you or anybody else here will find mistakes in my coding/testing results. Thank you. -- Shamil P.S. static void test1() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; values2[225] = true; values2[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:54:40.993 //09:55:44.733 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 } static void test2() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = { true, false, false, true }; bool[] values2 = { false, true, false, true }; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:52:32.604 //09:52:46.785 //0001 } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 1:48 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil <<< snip>>> __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 01:14:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:14:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94057.3080704@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> <4AB94057.3080704@colbyconsulting.com> Message-ID: <011001ca3c15$23a9f0c0$6afdd240$@spb.ru> Hi John, Yes, "balancing act" - the same story here. The answer is to subcontract an expert who will deliver (and will be paid full project price) only in the case they will produce agreed upon result. Then study and use their code to further tune your customer's application performance - and that way getting C# proficiency much faster than by self-education and trial & error (often throw-away) coding practice... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 1:24 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From stuart at lexacorp.com.pg Wed Sep 23 01:19:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 16:19:21 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Message-ID: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart On 23 Sep 2009 at 10:06, Shamil Salakhetdinov wrote: > Hi Stuart, > > We're talking C#/VB.NET here? - try test code in P.S - > > =========== > one billion > =========== > > of bitwise AND operations for > > ============================ > two 400 bits long bit arrays > ============================ > > takes about > > ==================================== > 1 minute 4 seconds 260 milliseconds > ==================================== > > on my "mere mortals PC" - two years old Dual Core Pentium. > > Please correct me if you or anybody else here will find mistakes in my > coding/testing results. > > Thank you. > > -- > Shamil > > P.S. > > > static void test1() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > values2[225] = true; > values2[399] = true; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > //09:54:40.993 > //09:55:44.733 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > } > > static void test2() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = { true, false, false, true }; > bool[] values2 = { false, true, false, true }; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > //09:52:32.604 > //09:52:46.785 > //0001 > } > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 1:48 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > The data storage requirements may be smaller, but the time required to > perform multiple > bitwise operation functions on every one of those 50 milllion rows is going > to be a lot slower > than using simple selection criteria on fields. > > -- > Stuart > > > On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > > > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > > that will be BINARY(50) in T-SQL. > > Although I'm not currently sure you can implement bitwise logical > operations > > solely using T-SQL: but I suppose you can get subset of data using > > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > > bitwise C# operations/functions over bit arrays. > > > > Something like that should work I suppose. > > > > Please correct me if I'm wrong. > > > > -- > > Shamil > <<< snip>>> > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From paul.hartland at googlemail.com Wed Sep 23 01:40:56 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Wed, 23 Sep 2009 07:40:56 +0100 Subject: [dba-VB] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <38c884770909222340m31f1155dw2784fab5a8f2422a@mail.gmail.com> John, Just an idea off the top of my head, have you tried enclosing the @fldname in brackets like below: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ((@fldname) <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' Paul 2009/9/23 jwcolby > I am trying to return a count of data items in a field of my table. When I > directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is > equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data > elements' > > As you can see everything is the same except @FldName which is being read > out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every > record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > -- Paul Hartland paul.hartland at googlemail.com From shamil at smsconsulting.spb.ru Wed Sep 23 01:54:42 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:54:42 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Message-ID: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Hi Stuart, No problem. "BitArrays population magic" isn't a complicated task for John "DB from Hell". BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB from Hell" with 50 million records it will be 50 millions * 400 = 20 billion bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do expect that even "brute force crunching" will produce a kind of instantaneous results for the part of query where char "Y/N" columns are currently used. And once loaded in memory the info can be kept/updated there (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much IOW maybe there is no even a need to substitute in "DB from Hell" current char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... Please correct me if you find I'm wrong somewhere in my considerations/expectations/evaluations... Thank you. -- Shamil P.S. static void test3() { //const long CYCLES_QTY = 1000000000; // 1 billion const long CYCLES_QTY = 50000000; // 50 millions bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); for (int i = 0; i < 400; i++) bitTest2[i] = true; Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.Xor(bitTest2); //bitTest1.Or(bitTest2); //bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); // 50 millions - AND //10:32:56.772 //10:32:59.548 //10000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 // 50 millions - OR //10:34:27.644 //10:34:30.451 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 // 50 millions - XOR //10:35:27.414 //10:35:30.182 //01111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111011111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111110 Console.WriteLine(); foreach (bool bit in bitTest2) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 10:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 02:19:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 11:19:48 +0400 Subject: [dba-VB] Useful information if you work with PropertyGrid, and not only with it... Message-ID: <011201ca3c1e$3d5beb00$b813c100$@spb.ru> Hi All, FYI: ICustomTypeDescriptor, Part 1 http://msdn.microsoft.com/en-us/magazine/cc163816.aspx ICustomTypeDescriptor, Part 2 http://msdn.microsoft.com/en-us/magazine/cc163804.aspx -- Shamil From stuart at lexacorp.com.pg Wed Sep 23 03:45:49 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 18:45:49 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Message-ID: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 10:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Sorry, > > I was under the impression that we were talking about selecting rows from > JC's "Database > >From Hell", not just manipulating bit arrays which we have somehow > magically populated > without pulling data from SQL Server. > > > -- > Stuart > > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 04:44:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 13:44:08 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> Message-ID: <000701ca3c32$673246e0$3596d4a0$@spb.ru> Stuart, I did mean that once loaded bit array will be kept "warm" in memory (John has enough memory for that). It's unclear what are the main type of queries of JC's customer (John can you clarify this issue?) - if that queries are to select a few thousand individual records as you suggest(?) and all the queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will outperform MS SQL, which (MS SQL) will have to scan the whole 50 million records, and "brute force bits crunching" will return a few thousand individual records IDs in ~3 seconds(?), and those IDs can then be used to select the records from the "DB from Hell" and apply the rest of the WHERE filtering criteria to select a subset; - if that queries are to select a few millions records and calculate some stats on them and all that queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will again outperform MS SQL for bit operation, as for the other part of WHERE clause - it could be possible to use LINQ for Objects here if all the compacted records can be loaded in memory on huge JC's computer - and if that will be possible then LINQ for Objects (of just custom programming of selection criteria logic evaluation + counting stats) should let to outperform MS SQL I expect... Recap: it all depends on the type of the queries to run against "DB From Hell" - if 80-90% of them fit first or the second type of queries mentioned above then it does make sense for compacted records to use "brute force bits crunching" approach as it might result in considerable shortening of the time queries run. If it doesn't make any sense there will a query run within a minute or within one or a couple of hours then "brute force bits crunching" isn't needed there... Or do you have your queries already running over "DB from Hell" within a minute/several minutes, John? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 12:46 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > <<< snip >>> From jwcolby at colbyconsulting.com Wed Sep 23 07:36:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:36:19 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <000701ca3c32$673246e0$3596d4a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> Message-ID: <4ABA1643.9090201@colbyconsulting.com> Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Wed Sep 23 07:50:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:50:22 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Message-ID: <4ABA198E.8070600@colbyconsulting.com> Stuart, When I do that I get an error "must declare the scalar variable @DataCnt" John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Household_Occupation_Code is a fieldname (an object) > @fldname is a string > > Your SP version evaluates to: > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE ('Household_Occupation_Code' <> '')) > > rather than > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_Code <> '')) > > > To interpret the variable, you could build your query dynamically and then EXECute it in > your SP. Something like: > > EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + > 'FROM dbo.tblHSIDModified ' + > 'WHERE (" + @fldsname + '<> ''''))' > > From shamil at smsconsulting.spb.ru Wed Sep 23 08:28:24 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 17:28:24 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ABA1643.9090201@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> <4ABA1643.9090201@colbyconsulting.com> Message-ID: <001201ca3c51$bb980480$32c80d80$@spb.ru> Hi John, Thank you for your reply. BTW, how much it takes in average to run a customer query using your current huge DB, and what size on disk does this DB occupy including all index files, how much RAM is needed, what are hard disks and CPU? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 4:36 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From fuller.artful at gmail.com Wed Sep 23 08:42:14 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 23 Sep 2009 09:42:14 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4ABA198E.8070600@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> <4ABA198E.8070600@colbyconsulting.com> Message-ID: <29f585dd0909230642r539e524agb698acd26bc36c9b@mail.gmail.com> I tried this approach on one of my own databases and it worked just fine. Given the differences in tables, I did a NOT NULL but that is beside the point I think. Here is my sproc and an example call: IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE SPECIFIC_SCHEMA = N'BOM' AND SPECIFIC_NAME = N'ap_CountByField' ) DROP PROCEDURE BOM.ap_CountByField GO CREATE PROCEDURE BOM.ap_CountByField @fld_name varchar(100) AS SELECT COUNT(*) FROM BOM.AssemblyComponents WHERE @fld_name IS NOT NULL GO -- ============================================= -- Example to execute the stored procedure -- ============================================= EXECUTE BOM.ap_CountByField 'AssemblyComponentID' GO hth, Arthur From shamil at smsconsulting.spb.ru Wed Sep 23 16:56:43 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 24 Sep 2009 01:56:43 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) In-Reply-To: <00f601ca3bc8$62896570$279c3050$@spb.ru> References: <00f601ca3bc8$62896570$279c3050$@spb.ru> Message-ID: <004301ca3c98$bdeaaed0$39c00c70$@spb.ru> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4451 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Thu Sep 24 05:50:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 24 Sep 2009 12:50:41 +0200 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: Hi Shamil It could be interesting to have a small report from you as you proceed! But the course itself - as described in the right column on the link you provided - isn't it well below your current skills? /gustav >>> shamil at smsconsulting.spb.ru 23-09-2009 23:56 >>> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management-Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From jwcolby at colbyconsulting.com Mon Sep 28 10:19:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:19:09 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <200909241755.n8OHtqPB016788@databaseadvisors.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> Message-ID: <4AC0D3ED.2060201@colbyconsulting.com> Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 28 10:44:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:44:22 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4AC0D9D6.9080600@colbyconsulting.com> I just managed to Alt-Tab back to Management studio, and that application is updating the screen again (though not the cursor movement). the little "Executing query" icon is rotating, and the query timer is counting up the seconds (01:47:08 ATM). I just discovered (on my laptop) the set IO affinity setting in SQL Server which I did not set. No idea what that does for me but I wonder if that being assigned to SQL Server for all processors could be part of the problem. John W. Colby www.ColbyConsulting.com jwcolby wrote: > Well I thought that assigning three processors to the SQL Server software was the answer, and it in > fact did make a difference in some cases, but there is still something happening that "locks up" the > server. IO started a long running update query going this morning and immediately afterwards I was > able to move around, look at other stuff. Then I went away to do other things. When I came back it > was "locked up" - with the Management studio application full screen, and the cursor immovable. Of > course I thought it was locked up, and I have always believed that it was literally never going to > come back. > > I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I > was at Windows Explorer, not Management Studio. So the machine is in fact responding, but > glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to > another machine the cursor is moving just fine, when I move back to this machine it is locked up. > However the cursor changed from the insertion pointer icon to the arrow icon when i switched from > Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is > just responding glacially. > > This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged > three of the processors when it began processing the query so I am comfortable that it in fact is > correctly using just three processors. > > So what is happening that would so completely freeze up the server that the cursor won't even move? > > Weird. > > Has anyone else out there ever experienced this? Found a solution? > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 28 11:00:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 28 Sep 2009 17:00:28 +0100 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4ac0ddb1.0508d00a.4dcd.012c@mx.google.com> If it is responding, then Ctrl-Alt-Delete to Task Manager and click on processes to sort them and see what process is taking the ticks. There are other *thread* software around mentioned here before which gives more granularity of the processes. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 28 September 2009 16:19 To: Discussion concerning MS SQL Server; VBA; Access Developers discussion and problem solving Subject: Re: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:04:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:04:39 -0400 Subject: [dba-VB] c# text box changed event Message-ID: <4AC16B37.2000605@colbyconsulting.com> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com From michael at ddisolutions.com.au Mon Sep 28 21:09:12 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:09:12 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Hi John, Is the control bound? Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:05 PM To: VBA Subject: [dba-VB] c# text box changed event I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:26:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:26:22 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Message-ID: <4AC1704E.1000201@colbyconsulting.com> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > From michael at ddisolutions.com.au Mon Sep 28 21:32:23 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:32:23 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582474@ddi-01.DDI.local> How about KeyDown, Leave combinations then? When keydown is fired set dirty, When leave fires on a dirty control 'save' the data. Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:26 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# text box changed event No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Mon Sep 28 22:33:42 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 13:33:42 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From Gustav at cactus.dk Tue Sep 29 05:04:51 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 12:04:51 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! Anyway, I had the same issue and worked out this very simple method: private void textBoxName_TextChanged(object sender, EventArgs e) { TextBox textBox = (TextBox)sender; if (textBox.Focused) { Console.WriteLine(textbox.Text); } } /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by > code. Is there a change event that fires for manual editing but not by code editing? From jdthree at frontiernet.net Tue Sep 29 06:50:22 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Tue, 29 Sep 2009 07:50:22 -0400 Subject: [dba-VB] XML LINQ Help! In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Message-ID: <003c01ca40fb$07061ad0$15125070$@net> Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 29 08:14:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:14:31 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <4AC20837.2090004@colbyconsulting.com> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 08:45:00 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 15:45:00 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? From jwcolby at colbyconsulting.com Tue Sep 29 08:58:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:58:02 -0400 Subject: [dba-VB] SPAM-LOW: Re: c# text box changed event In-Reply-To: References: Message-ID: <4AC2126A.2070301@colbyconsulting.com> Gustav, > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. I keep good company I suppose? I never used c# in the past, only vb.net. The syntax is different enough that it requires at least some study. I use the class to force myself to put in the hours. As a professional developer it is easy to get sidetracked and not do the study, especially when you have no paying work to keep you in the area. Plus theoretically it provides me another place to ask questions, interface with others working in the language etc. I plan on doing this and the next level class, at which point I will be most of the way through the book and hopefully well on my way. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. > > As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. > This: > > TextBox textBox = (TextBox)sender; > > does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: > > CheckBox checkBox = (CheckBox)sender; > > What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> > Gustav, > > > Are we allowed to help with homework? > > LOL. > > The homework does not involve classes, collections, or even the messagebox (all used in my version > of the homework) because we don't even get to that until next semester. I am just trying to > entertain myself and learn something beyond "how does the string object work". > > This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on > chapter 4 - How to work with numeric and string data. > > That is a cool method of discovering the source of the change event. I have too admit though that I > don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't > we error if this is not a text box type? And whatever caused the change has the focus, so why > doesn't the object (once cast) always say that it has the focus? > > I'm confused. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! >> >> Anyway, I had the same issue and worked out this very simple method: >> >> >> private void textBoxName_TextChanged(object sender, EventArgs e) >> { >> TextBox textBox = (TextBox)sender; >> if (textBox.Focused) >> { >> Console.WriteLine(textbox.Text); >> } >> } >> >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> >> No. I am doing a homework assignment where I collect grades in classes, and then move back and >> forth through the classes. I have chosen to use a shared text box where the grade classes display >> their grades, and the user enters new grades. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Michael Maddison wrote: >>> Hi John, >>> >>> Is the control bound? >>> >>> Cheers >>> >>> Michael M >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Tuesday, 29 September 2009 12:05 PM >>> To: VBA >>> Subject: [dba-VB] c# text box changed event >>> >>> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >>> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >>> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 10:01:08 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 17:01:08 +0200 Subject: [dba-VB] XML LINQ Help! Message-ID: Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From shamil at smsconsulting.spb.ru Tue Sep 29 14:47:33 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 29 Sep 2009 23:47:33 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <009e01ca413d$b17425b0$145c7110$@spb.ru> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 29, 2009 5:45 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? __________ Information from ESET NOD32 Antivirus, version of virus signature database 4468 (20090929) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From michael at ddisolutions.com.au Tue Sep 29 18:32:21 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:32:21 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> <003c01ca40fb$07061ad0$15125070$@net> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247C@ddi-01.DDI.local> Thanks Jim, Going through the docs on MSDN http://msdn.microsoft.com/en-us/library/bb675196.aspx they do it slightly differently... XmlReader r = XmlReader.Create ( @path ); while ( r.NodeType != XmlNodeType.Element ) r.Read ( ); XElement e = XElement.Load ( r ); IEnumerable attList = from att in e.Elements ( ).Attributes ( "MID" ) //where (string) att.Value == "SR_20090929" //this works select att; foreach ( XAttribute att in attList ) { Console.WriteLine ( att.Value ); } Maybe they used a XmlReader just to demonstrate its use? Havn't found a best practices yet. When I suss out how to enumerate the races I'll post back. Cheers Michael M Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Tue Sep 29 18:51:52 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:51:52 +1000 Subject: [dba-VB] XML LINQ Help! References: Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247D@ddi-01.DDI.local> Hi Gustav, I considered dumping the lot into a dataset but at the moment the end result is supposed to be xml to be loaded into Excel. And you are also correct that I don't need to load from a file. The web service methods returns XmlElement, I wrote it out to a xmlDocument for my convienience. The client was going to handle the Excel side but is now having second thoughts :-) So now I'm looking at extracting just the data needed and exposing to Excel as Arrays. I think that will make it easier to control in Excel, if anyone has other suggestions I'm all ears. Cheers Michael M Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From Gustav at cactus.dk Wed Sep 30 02:31:22 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 09:31:22 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 30 05:30:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 30 Sep 2009 14:30:08 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <00c401ca41b8$fd3ece20$f7bc6a60$@spb.ru> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4469 (20090930) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Wed Sep 30 06:43:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 13:43:21 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil Thanks. That requires less code for each control which is a good thing. However, it doesn't address the issue I had when browsing records in formview with bound textboxes. Perhaps both methods should be combined? I think we miss an event: UserChangedText /gustav >>> shamil at smsconsulting.spb.ru 30-09-2009 12:30:08 >>> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 00:48:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 09:48:18 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <4dd71a0c0908301447s1c1fc75cw1eac8e9761f2a50@mail.gmail.com> Message-ID: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 1 01:54:39 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 10:54:39 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> References: <006901ca2a21$702c01a0$508404e0$@spb.ru> <00a301ca2a60$97e5b080$c7b11180$@spb.ru> <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> Message-ID: <00cb01ca2ad1$150793b0$3f16bb10$@spb.ru> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 9:29 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have got a helping hand from Mike, Gustav and Doug who happened to be "Lucky Guys" (thank you guys!) - they have referred below sample working well "out of the box". This sample solution (in Mike's interpretation) is posted here: http://northwind.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26600#D ownloadId=81391 (~65KB) It can be used as a test to see if your system is "WCF Web Services Development Ready". It has now WCF web service reference set OK (as this reference setting happened on Mike's VS2008) but when I run it I'm getting runtime error: "The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state." I'm currently "digging further" trying to make this sample working on my system - here is some information I'm looking through: How to make sure you don't get WCF Faulted State Exception? http://stackoverflow.com/questions/530731/how-to-make-sure-you-dont-get-wcf- faulted-state-exception Avoiding Problems with the Using Statement http://msdn.microsoft.com/en-us/library/aa355056.aspx I will inform you on my further progress (if any). Thank you for your help. -- Shamil P.S. I haven't been "fighting" with this issue all the working day through, I was already in swimming pool with my kid etc. - yet this issue is one of the representative cases what make software development so "heavy" sometimes - the best/quickest solutions for such issues seems to be clean reinstalls of the systems, and having just latest release versions of MS software on that systems: still have to find time/resources to prepare something like that - this current case could be the "last drop"... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 1:57 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I'd be very grateful if anybody could go through the following sample/workthrough using VS2008 SP1 "How to Consume a Web Service" http://johnwsaundersiii.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c= BlogPart&partqs=amonth%3d5%26ayear%3d2009 (watch line wraps) and publish for download/send me privately the sources you'll get. I can't get this sample working on my system (something is still wrong with my system setup), and I wanted to compare your sources with the ones I'm getting here to find out how to solve this "nightmarish" issue. If all will work well it should take several minutes to make the sample working on your system assuming you have VS2008 SP1 and Windows SDK installed. Please do not try to look for workarounds if the above sample will not work out of the box as described - looking for such workaround can take hours and hours (and solution depends on your system (current) context/previous setups I believe) - you'll risk to lose your working day. Solution/workaround should be simple, effective and generic - I still can't find it nor by myself nor by intensive Googling/Binging. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 1 04:34:46 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 01 Sep 2009 11:34:46 +0200 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Message-ID: Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 06:52:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 15:52:53 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: References: Message-ID: <00db01ca2afa$be7268c0$3b573a40$@spb.ru> Hi Gustav, No, there is no other software running on this port: I have just changed IIS based WCF web service to use 59507 port, and then changed service reference in Mike's sample to consume this my local IIS WCF web service - and everything worked OK. Yes, I will try to monitor my PC IP Ports activity but I have to postpone that as I have got now a couple of project to develop. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 01, 2009 1:35 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:16:30 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:16:30 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Tue Sep 1 10:47:16 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 19:47:16 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4386 (20090901) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:53:26 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:53:26 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> Message-ID: There are some. The important thing is understanding that aspect of how ASP.Net works, which is why I said it's a good path to get familiar with classic asp first, before using the more powerful ASP.Net. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 10:47 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Wed Sep 2 13:38:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 22:38:40 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Message-ID: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 2 14:56:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 23:56:02 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application In-Reply-To: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001101ca2c07$678abfe0$36a03fa0$@spb.ru> Hi All, I have just found an interesting sample related to the subject or this thread as well as on WCF services one: "GeoNames .NET WCF Client" http://www.codeproject.com/KB/WCF/GeoNames-WCFClient.aspx Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 02, 2009 10:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Wed Sep 2 19:41:16 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Wed, 2 Sep 2009 20:41:16 -0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I have a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 04:53:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 3 Sep 2009 13:53:46 +0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Hi Mike, Thank you. Would that be correct assumption that using Mapstraction with OpenStreetMaps is free for commercial Web applications? And when my customer will get some "fat" it will be not that complicated to switch to GoogleMaps or other commercial GIS solution providers as Mapstraction provides good JavaScript abstraction layer? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:41 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I hae a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 07:57:53 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 08:57:53 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Message-ID: <86C0C6779099450D9E17241C79EF23DB@Mattys> Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 15:03:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 00:03:48 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application In-Reply-To: <86C0C6779099450D9E17241C79EF23DB@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> Message-ID: <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Hi Mike, OK. If I can "GET" Mapstraction with something else open source (read "free") to implement the referred below functionality then I'd try to "GIVE" back developed here free/open source DotNetNuke (DNN) module wrapping that functionality to be reused by others - would that be a "fair exchange"? :) Maybe I should ask it that way - do you know what provider Mapstraction talks to here: http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 I mean you mentioned that the above site's map navigation is developed using Mapstraction - maybe you know also what GIS data/API provider it's used there? The only functionality, which is needed here currently is: - to show a country map with regions/states; - highlight/show tooltip of region/state on mouse move; - zoom region/state when it's clicked by mouse; - highlight sub-regions (if any). Purchasing advanced commercial GIS systems for the above functionality is looking currently excessive here (for my customer). Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:58 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4392 (20090903) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 15:31:51 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 16:31:51 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From mmattys at rochester.rr.com Thu Sep 3 16:13:50 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 17:13:50 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> >>>> _______________________________________________ >>>> dba-VB mailing list >>>> dba-VB at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>>> http://www.databaseadvisors.com >>>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4392 (20090903) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006901ca2d22$dd1a3260$974e9720$@spb.ru> Hi Mike, Don't worry. No problem at all. Your remark is accepted here with pleasure. If you think I like open source that wouldn't be true :) But I have to accept that "open source software phenomena" as reality, and to find how to live with it with as little as possible "damage" to my own and other developers business. You know I started my development carrier when there was no yet that phenomena. Nowadays I'd probably not go into programming because of "corruption" of that profession introduced by open source. Although AFAIS the "greed" of commercial solutions' software shops together with rather low quality of many of that solutions especially in 1990-ies was one of the driving forces of the "open source software".... You convinced me - I'd try to use as little as possible open source software solutions - none will be ideal. And sharing experience as we're doing here and making sample solutions etc. - I'll continue doing that as this activity helps to learn new technologies, helps to minimize routine everyday work etc. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 1:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006a01ca2d22$dfb21b50$9f1651f0$@spb.ru> Hi Mike, OK, I will not do that. :) I will try to find some affordable commercial (or semi-commercial) solution, I will put it into DNN Module Envelope, and I will be selling my solution online for USD99-3USD00 - usual price for advanced commercial DNN modules. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 12:32 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 4 03:51:23 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 4 Sep 2009 09:51:23 +0100 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: <006901ca2d22$dd1a3260$974e9720$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Fri Sep 4 04:02:19 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 13:02:19 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: <007401ca2d3e$696242b0$3c26c810$@spb.ru> Hi Mark, Here is the info on GoogleMaps (API) usage in commercial applications - I have got it from Mike: <<< For External Applications (public facing sites or customer facing extranets) * $10,000 for 1 million page views per year * $20,000 for 2 million page views per year * $30,000 for 3 million page views per year * $40,000 for 5 million page views per year * Please call for pricing above 5 external million page views per year For Internal Applications (internal applications, non-customer facing) * $10,000 for 250K page views per year * $20,000 for 500K views per year * $30,000 for 750K page views per year * $40,000 for 1.5 million page views per year * Please call for pricing above 1.5 million internal page views per year FAQ How can I try out the Google Maps API? For development purpose you are authorized to use a Free Google Maps license key as an Enterprise License key for 30 days. This means that you are licensed to use Google Maps behind the firewall, in an internal application, or as part of paid or premium content for 30 days (e.g. the Enterprisefull licensing agreement). The 30 day free trial is still subject to a limit of 15,000 geocodes per day. To sign up for the key, please visit http://code.google.com/apis/maps/signup.html If you have already signed up for a key, please mark the date of this e-mail as the start of your 30 day free trial. >>> AFAIS GoogleMaps is not free - and if used from available on SnowCovered DNN modules one have to pay for both - a DNN module license and Google Maps API usage. Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen Sent: Friday, September 04, 2009 12:51 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 08:41:26 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 09:41:26 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> Message-ID: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com From jwcolby at colbyconsulting.com Fri Sep 4 09:35:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 10:35:29 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <4AA125B1.3000702@colbyconsulting.com> That is a rather steep fee schedule however. I find the fee difference interesting as well. Significantly more expensive for corporate usage than public. John W. Colby www.ColbyConsulting.com Mike Mattys wrote: > To be sure, Google is operating exactly as it should in this world > according to all that is taught in the 'best' ivy league business colleges > and the 'wisdom' of all financial programs on television. > > No one understands the consequences down the road. > > One doesn't observe the pharmaceutical companies adopting an open > source philosophy, either. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 5:02 AM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawinginASP.NETapplication > > >> Hi Mark, >> >> Here is the info on GoogleMaps (API) usage in commercial applications - I >> have got it from Mike: >> >> <<< >> For External Applications (public facing sites or customer facing >> extranets) >> * $10,000 for 1 million page views per year >> * $20,000 for 2 million page views per year >> * $30,000 for 3 million page views per year >> * $40,000 for 5 million page views per year >> * Please call for pricing above 5 external million page views per year >> >> For Internal Applications (internal applications, non-customer facing) >> * $10,000 for 250K page views per year >> * $20,000 for 500K views per year >> * $30,000 for 750K page views per year >> * $40,000 for 1.5 million page views per year >> * Please call for pricing above 1.5 million internal page views per year >> >> FAQ >> How can I try out the Google Maps API? >> For development purpose you are authorized to use a Free Google Maps >> license key as an Enterprise License key for 30 days. This means that >> you are licensed to use Google Maps behind the firewall, in an >> internal application, or as part of paid or premium content for 30 >> days (e.g. the Enterprisefull licensing agreement). The 30 day free >> trial is still subject to a limit of 15,000 geocodes per day. >> >> To sign up for the key, please visit >> http://code.google.com/apis/maps/signup.html >> If you have already >> signed up for a key, please mark the date of this e-mail as the start >> of your 30 day free trial. >> AFAIS GoogleMaps is not free - and if used from available on SnowCovered >> DNN >> modules one have to pay for both - a DNN module license and Google Maps >> API >> usage. >> >> Correct? >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen >> Sent: Friday, September 04, 2009 12:51 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Hello Shamil and Mike, >> Shamil, perhaps I am missing something here, but I would have assumed that >> you are free to use Google Maps for your application. Why can you not? >> Of >> did I miss something that you need a wrapper for Google maps? >> >> When I searched on SnowCovered I see plenty of Google Map providers, so I >> guess you must be looking for something else? >> >> thanks >> >> Mark >> >> >> >> 2009/9/4 Shamil Salakhetdinov >> >>> Hi Mike, >>> >>> Don't worry. >>> No problem at all. >>> Your remark is accepted here with pleasure. >>> If you think I like open source that wouldn't be true :) >>> But I have to accept that "open source software phenomena" as reality, >>> and >>> to find how to live with it with as little as possible "damage" to my own >>> and other developers business. You know I started my development carrier >>> when there was no yet that phenomena. Nowadays I'd probably not go into >>> programming because of "corruption" of that profession introduced by open >>> source. Although AFAIS the "greed" of commercial solutions' software >>> shops >>> together with rather low quality of many of that solutions especially in >>> 1990-ies was one of the driving forces of the "open source software".... >>> >>> You convinced me - I'd try to use as little as possible open source >>> software >>> solutions - none will be ideal. >>> >>> And sharing experience as we're doing here and making sample solutions >> etc. >>> - I'll continue doing that as this activity helps to learn new >>> technologies, >>> helps to minimize routine everyday work etc. >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Friday, September 04, 2009 1:14 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> Shamil, >>> >>> I wasn't trying to be rude, I really don't understand >>> the Open-Source thing. >>> >>> Really. >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Mike Mattys" >>> To: "Discussion concerning Visual Basic and related programming issues." >>> >>> Sent: Thursday, September 03, 2009 4:31 PM >>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> >>>> Shamil, >>>> >>>> Doesn't it simply mean that you'll put a lot of web mapping >>>> programmers in a lower income bracket and only big companies >>>> will benefit? >>>> >>>> - >>>> Michael R Mattys >>>> MapPoint and Database Dev >>>> www.mattysconsulting.com >>>> - >>>> ----- Original Message ----- >>>> From: "Shamil Salakhetdinov" >>>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>>> >>>> Sent: Thursday, September 03, 2009 4:03 PM >>>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>>> objectspresentation/drawing inASP.NETapplication >>>> >>>> >>>>> Hi Mike, >>>>> >>>>> OK. If I can "GET" Mapstraction with something else open source (read >>>>> "free") to implement the referred below functionality then I'd try to >>>>> "GIVE" >>>>> back developed here free/open source DotNetNuke (DNN) module wrapping >>>>> that >>>>> functionality to be reused by others - would that be a "fair >>>>> exchange"? >>>>> :) >>>>> >>>>> Maybe I should ask it that way - do you know what provider >>>>> Mapstraction >>>>> talks to here: >>>>> >>>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >>>>> >>>>> I mean you mentioned that the above site's map navigation is developed >>>>> using >>>>> Mapstraction - maybe you know also what GIS data/API provider it's >>>>> used >>>>> there? >>>>> >>>>> The only functionality, which is needed here currently is: >>>>> >>>>> - to show a country map with regions/states; >>>>> - highlight/show tooltip of region/state on mouse move; >>>>> - zoom region/state when it's clicked by mouse; >>>>> - highlight sub-regions (if any). >>>>> >>>>> Purchasing advanced commercial GIS systems for the above functionality >>> is >>>>> looking currently excessive here (for my customer). >>>>> >>>>> Thank you. >>>>> >>>>> -- >>>>> Shamil >>>>> >>>>> -----Original Message----- >>>>> From: dba-vb-bounces at databaseadvisors.com >>>>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>>>> Sent: Thursday, September 03, 2009 4:58 PM >>>>> To: Discussion concerning Visual Basic and related programming issues. >>>>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>>>> objectspresentation/drawing inASP.NET application >>>>> >>>>> Shamil, >>>>> >>>>> I can't be quoted as an authority on this because I don't really >>>>> understand "open source" in a world based upon "GET" instead >>>>> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >>>>> >>>>> However, It appears that OSM is free but Mapstraction does not yet >>>>> 'talk' with OpenStreetMaps. They are planning to do so. >>>>> >>>>> Then again, they seem to be asking for participation in the project >>>>> ... >>>>> >>>>> - >>>>> Michael R Mattys >>>>> MapPoint and Database Dev >>>>> www.mattysconsulting.com > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 4 10:07:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 11:07:16 -0400 Subject: [dba-VB] Developing an application for sale? Message-ID: <4AA12D24.3020508@colbyconsulting.com> I found this today. http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx I am looking at starting a business with a current client to design and sell a product. In particular look at this which is a program description: http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf If you are seriously developing an application, if you are a "startup" or can become one, this program will provide you with the top end development products as well as server OS etc. I will be talking to my potential partner about this. -- John W. Colby www.ColbyConsulting.com From mmattys at rochester.rr.com Fri Sep 4 11:15:59 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 12:15:59 -0400 Subject: [dba-VB] Developing an application for sale? References: <4AA12D24.3020508@colbyconsulting.com> Message-ID: <0FCC1CA012AA479C8803DD1BB96B7F99@Mattys> Very interesting. Thanks, John - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" ; "VBA" Sent: Friday, September 04, 2009 11:07 AM Subject: [dba-VB] Developing an application for sale? >I found this today. > > http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx > > I am looking at starting a business with a current client to design and > sell a product. In > particular look at this which is a program description: > > http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf > > If you are seriously developing an application, if you are a "startup" or > can become one, this > program will provide you with the top end development products as well as > server OS etc. > > I will be talking to my potential partner about this. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 11:26:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 20:26:00 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Hi Mike, It looks like GoogleMaps API (not Premier version) can be used for free even on commercial web sites with some limitations and my customer business should fit them: <<< http://code.google.com/intl/en/apis/maps/faq.html Can I use the Google Maps API on a commercial website? As long as your site is generally accessible to consumers without charge, you may use the Google Maps API. For example, if your website is supported by advertising, it likely falls within the Google Maps API Terms of Service. If you charge people to place information on your map (e.g. to list their homes for sale), but you display this information using the Google Maps API on a free part of your site, you'll also meet the Google Maps API Terms of Service. However, not all commercial uses are allowed. If your site meets any of the following criteria you must use Google Maps API Premier: * Your site is only available to paying customers. * Your site is only accessible within your company or on your intranet. Remember, Google reserves the right to suspend or terminate your use of the Google Maps API at any time, so please ensure that you read the Terms of Service carefully. >>> Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 5:41 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4396 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 15:38:56 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:38:56 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys> <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: Shamil, I think that as long as you're not charging by some measure of transactions and the site is publicly available that you'll be able to duplicate the site you showed us without being terminated by Google. It would be best to check with them, of course. If I can be of more assistance, please let me know. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 12:26 PM Subject: Re: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Hi Mike, > > It looks like GoogleMaps API (not Premier version) can be used for free > even > on commercial web sites with some limitations and my customer business > should fit them: > > <<< > http://code.google.com/intl/en/apis/maps/faq.html > > Can I use the Google Maps API on a commercial website? > > As long as your site is generally accessible to consumers without > charge, you may use the Google Maps API. For example, if your website is > supported by advertising, it likely falls within the Google Maps API Terms > of Service. If you charge people to place information on your map (e.g. to > list their homes for sale), but you display this information using the > Google Maps API on a free part of your site, you'll also meet the Google > Maps API Terms of Service. > > However, not all commercial uses are allowed. If your site meets any of > the following criteria you must use Google Maps API Premier: > > * Your site is only available to paying customers. > * Your site is only accessible within your company or on your > intranet. > > Remember, Google reserves the right to suspend or terminate your use of > the Google Maps API at any time, so please ensure that you read the Terms > of > Service carefully. >>>> > > Correct? > > Thank you. > > -- > Shamil From mmattys at rochester.rr.com Fri Sep 4 15:54:54 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:54:54 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys><007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: <670A61C34ECF434A80325BD4FF027FDA@Mattys> Shamil, A second opinion from here was: "Yeah, they're going to charge." Reasoning: If you're going to receive income from it, you're going to pay. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Friday, September 04, 2009 4:38 PM Subject: Re: [dba-VB]Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Shamil, > > I think that as long as you're not charging by some measure > of transactions and the site is publicly available that you'll > be able to duplicate the site you showed us without being > terminated by Google. > > It would be best to check with them, of course. > If I can be of more assistance, please let me know. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 12:26 PM > Subject: Re: [dba-VB] > Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > > >> Hi Mike, >> >> It looks like GoogleMaps API (not Premier version) can be used for free >> even >> on commercial web sites with some limitations and my customer business >> should fit them: >> >> <<< >> http://code.google.com/intl/en/apis/maps/faq.html >> >> Can I use the Google Maps API on a commercial website? >> >> As long as your site is generally accessible to consumers without >> charge, you may use the Google Maps API. For example, if your website is >> supported by advertising, it likely falls within the Google Maps API >> Terms >> of Service. If you charge people to place information on your map (e.g. >> to >> list their homes for sale), but you display this information using the >> Google Maps API on a free part of your site, you'll also meet the Google >> Maps API Terms of Service. >> >> However, not all commercial uses are allowed. If your site meets any >> of >> the following criteria you must use Google Maps API Premier: >> >> * Your site is only available to paying customers. >> * Your site is only accessible within your company or on your >> intranet. >> >> Remember, Google reserves the right to suspend or terminate your use >> of >> the Google Maps API at any time, so please ensure that you read the Terms >> of >> Service carefully. >>>>> >> >> Correct? >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Mon Sep 7 10:33:56 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 7 Sep 2009 19:33:56 +0400 Subject: [dba-VB] FYI: Learn Lean Software Development and Kanban Systems Message-ID: <001f01ca2fd0$a0f6eac0$e2e4c040$@spb.ru> Hi All, Here is a good collection of links on subject: "Learn Lean Software Development and Kanban Systems" http://johnnycoder.com/blog/2009/08/26/learn-lean-software-development-and-k anban-systems/ Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 02:57:01 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 11:57:01 +0400 Subject: [dba-VB] DotNetNuke: custom forms, map navigation/geocoding, AJAX... Message-ID: <003d01ca3059$f3c46f00$db4d4d00$@spb.ru> Hi All, It looks like I have finally found advanced samples of DNN web apps - have a look: Rechercher sur carte http://www.frantsia.ru/nedvijimost/fr/ Interactive Map http://www.camposdenijar.com/ToDO/InteractiveMap/tabid/88/Default.aspx AFAIUK one of DNN generic modules used here is XMod: http://dnndev.com/Default.aspx?tabid=213 Do you know what other modules/techniques are used to develop interactive web page here: http://www.frantsia.ru/nedvijimost/fr/ Thank you. --Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 03:59:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 12:59:53 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Message-ID: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Hi All, Additionally to my previous message - FYI - here are amazing DNN related stuff/development tools - amazing at least for me - I must say I have never seen something like that made using DNN: http://dnnprofessor.com/Home.aspx Enjoy! --Shamil P.S. The mentioned above stuff is not free but its price is also amazing - amazingly low IMO: From max.wanadoo at gmail.com Tue Sep 8 05:16:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 11:16:51 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 8 05:46:49 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 14:46:49 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 11:34:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 17:34:06 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Message-ID: <4aa68798.13125e0a.04fe.4f39@mx.google.com> I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 12:14:03 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 21:14:03 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa68798.13125e0a.04fe.4f39@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> Message-ID: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 12:38:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 18:38:54 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Message-ID: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 13:13:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 22:13:18 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> Message-ID: <000c01ca30b0$0c51b860$24f52920$@spb.ru> Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 13:27:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 19:27:02 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000c01ca30b0$0c51b860$24f52920$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> Message-ID: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 14:12:34 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 23:12:34 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> Message-ID: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > From max.wanadoo at gmail.com Tue Sep 8 14:24:15 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 20:24:15 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Message-ID: <4aa6af8d.26015a0a.7fde.ffff9d5b@mx.google.com> Shamil, Thanks for all that. I am going to run this past my colleague to see if this is something we can go with at work. Thanks very much for the info. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 20:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 15 07:26:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 Sep 2009 08:26:42 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK Message-ID: <4AAF8802.7020606@colbyconsulting.com> I ran across this today. I use Sync Toy to synchronize directories for various purposes - photos between the server and my laptop, backup files between the backup directory and an external drive etc. It seems that Sync Toy is a pretty face over a sync framework, which you can program to. http://msdn.microsoft.com/en-us/sync/bb887623.aspx http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Thu Sep 17 11:41:54 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 20:41:54 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime Message-ID: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil From cfoust at infostatsystems.com Thu Sep 17 12:01:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 17 Sep 2009 10:01:32 -0700 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Thu Sep 17 12:10:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:10:53 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: <00d101ca37b9$d1461930$73d24b90$@spb.ru> Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Thu Sep 17 12:48:35 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:48:35 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00d101ca37b9$d1461930$73d24b90$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> <00d101ca37b9$d1461930$73d24b90$@spb.ru> Message-ID: <00d201ca37bf$166501c0$432f0540$@spb.ru> Hi Charlotte and all, I have got the answer from other source that the value of BrowsableAttribute as well as of other attributes can't be set at runtime. Sorry, that was a wrong request of mine. Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:11 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 18 17:52:09 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 18 Sep 2009 23:52:09 +0100 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: <4AAF8802.7020606@colbyconsulting.com> References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: Hello John, FYI, since you prompted me a year or two ago to ensure I was backing up my home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in beta for over a year. I find it works perfect for me and I used it to keep my main pc synced to a external usb drive. I sync about 50 GB of files and all is fine. I am looking forward to clicking your links below., thanks Mark 2009/9/15 jwcolby > I ran across this today. I use Sync Toy to synchronize directories for > various purposes - photos > between the server and my laptop, backup files between the backup directory > and an external drive > etc. It seems that Sync Toy is a pretty face over a sync framework, which > you can program to. > > http://msdn.microsoft.com/en-us/sync/bb887623.aspx > > http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx > > http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx > > http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 18 19:29:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 18 Sep 2009 20:29:08 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: <4AB425D4.8020108@colbyconsulting.com> Mark, In fact I think 2.0 is now released. I am using it as well to sync a local directory to an external hard drive. It does work really well. The links are for programming with the Sync framework, the same thing that MS used to build SyncToy, but from inside of your C# or VB.net apps. John W. Colby www.ColbyConsulting.com Mark Breen wrote: > Hello John, > FYI, since you prompted me a year or two ago to ensure I was backing up my > home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in > beta for over a year. I find it works perfect for me and I used it to keep > my main pc synced to a external usb drive. I sync about 50 GB of files and > all is fine. > > I am looking forward to clicking your links below., > > thanks > > Mark > > > 2009/9/15 jwcolby > >> I ran across this today. I use Sync Toy to synchronize directories for >> various purposes - photos >> between the server and my laptop, backup files between the backup directory >> and an external drive >> etc. It seems that Sync Toy is a pretty face over a sync framework, which >> you can program to. >> >> http://msdn.microsoft.com/en-us/sync/bb887623.aspx >> >> http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx >> >> http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx >> >> http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Sat Sep 19 13:43:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 14:43:48 -0400 Subject: [dba-VB] c# - Monitor folder and run application Message-ID: <4AB52664.7060504@colbyconsulting.com> Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com From max.wanadoo at gmail.com Sat Sep 19 13:51:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 19 Sep 2009 19:51:23 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> JC, no code to hand, but as you say this is dead easy if run from a form. Set the Timer to the frequency. With the InTimer() Do a dir() to see if its there. End of heartache Waiting for my Lottery numbers to come up... Have you any code for that..I will swap... Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 19 September 2009 19:44 To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Sep 19 14:16:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 15:16:53 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> References: <4AB52664.7060504@colbyconsulting.com> <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> Message-ID: <4AB52E25.2010705@colbyconsulting.com> I looked at the monitor piece awhile back and it turns out there is an object in .Net that does the monitor for you. It even generates an event for new items in the dir IIRC. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, no code to hand, but as you say this is dead easy if run from a form. > Set the Timer to the frequency. > > With the InTimer() > Do a dir() to see if its there. > End of heartache > > Waiting for my Lottery numbers to come up... > > Have you any code for that..I will swap... > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 19 September 2009 19:44 > To: VBA > Subject: [dba-VB] c# - Monitor folder and run application > > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to > complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a > single solution. > > This doesn't appear too tough given all the code snipits out there but why > reinvent the wheel if you > have done it. > From stuart at lexacorp.com.pg Sat Sep 19 17:14:56 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 20 Sep 2009 08:14:56 +1000 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4AB557E0.16460.E42B361@stuart.lexacorp.com.pg> You should use the WaitForSingleObject API call. I've got several examples in PowerBasic and VBA. which do things like monitor your browser cache and detect when cookies are added/changed but not in .Net. I'd guess that googling that call should turn up suitable examples in c#. -- Stuart On 19 Sep 2009 at 14:43, jwcolby wrote: > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a single solution. > > This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you > have done it. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Sep 19 21:05:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 22:05:41 -0400 Subject: [dba-VB] XML and class serialization Message-ID: <4AB58DF5.50204@colbyconsulting.com> In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com From jdthree at frontiernet.net Sun Sep 20 07:24:24 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Sun, 20 Sep 2009 08:24:24 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <001e01ca39ed$4a3e26e0$deba74a0$@net> Hello John et al, I've been away from coding for quite a while but I'm back into it again. John you're looking for the FileSystemWatcher in System.IO. I don't have any code for you but what you'll find if you Google it will get you what you need. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 2:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Sun Sep 20 09:39:32 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Sun, 20 Sep 2009 18:39:32 +0400 Subject: [dba-VB] XML and class serialization In-Reply-To: <4AB58DF5.50204@colbyconsulting.com> References: <4AB58DF5.50204@colbyconsulting.com> Message-ID: <006c01ca3a00$2ef946e0$8cebd4a0$@spb.ru> Hi John, What "HUGE overhead" do you mean? Do you mean XML file size? BTW, you can try to serialize collections' and objects' into binary http://www.java2s.com/Code/CSharp/File-Stream/CSerialization.htm and JSON http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-Data ContractJsonSerializer.aspx files/strings. As for XML processing in memory - it is very effective and is "out-of-the-.NET-box" - I suppose that in memory XML files are stored very "tightly packed" without any overheads - they (I guess) are more like hierarchical in memory databases (remember IMS?) than plain files IOW in memory XML processing using XPATH etc. could(/should?) work quicker than SQL processing of loaded in memory relational databases... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, September 20, 2009 6:06 AM To: Access Developers discussion and problem solving; VBA Subject: [dba-VB] XML and class serialization In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4441 (20090919) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Mon Sep 21 08:42:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 09:42:13 -0400 Subject: [dba-VB] C# get project directory Message-ID: <4AB782B5.2010306@colbyconsulting.com> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Mon Sep 21 09:28:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 21 Sep 2009 18:28:46 +0400 Subject: [dba-VB] C# get project directory In-Reply-To: <4AB782B5.2010306@colbyconsulting.com> References: <4AB782B5.2010306@colbyconsulting.com> Message-ID: <009c01ca3ac7$d825a890$8870f9b0$@spb.ru> Hi John, Will that work for you?: string appFullPath = Application.ExecutablePath; string appFolder = System.IO.Path.GetDirectoryName(appFullPath); System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(appFolder); Console.WriteLine(folder.Parent.Parent.Parent.FullName); BTW, if you're planning to have your (sample) application easily deployed using XCOPY then it's better to not use the above approach as it assumes that your executable will have "some useful stuff" three levels up in the directory tree - you'd better use assumption that your app has "some useful stuff" in predefined (sub-)...sub-directories relative to the executable's directory. I usually create a \Bin folder under solution's folder - that will be E:\C# Projects\Grade Calculator\Bin for your case and I set both Debug and Release mode executables built in this folder (Solutions Explorer->Project->Right-Click->Properties->Build->Output Path). Then all "useful stuff" can be placed in custom \Bin folder (E:\C# Projects\Grade Calculator\Bin) and its subfolders, and XCOPY deployment will always work OK. I'd also note that you use Application object to get exe fullpath - that works by default for WinForms apps but is unavailable in console and other types of apps by default: yes, you can set a reference to System.Windows.Forms in console application but that would be an overkill - I usually use this function: public static string ExecutingAssemblyFullPath { get { Assembly asm = Assembly.GetExecutingAssembly(); AssemblyName origCodebase = asm.GetName(false); string codeBase = origCodebase.CodeBase; if (codeBase.StartsWith(@"file:///") || codeBase.StartsWith(@"file:\\\")) codeBase = codeBase.Substring(8); return codeBase; } } I have got made it quite some time ago, and it always work well, although there could be even better/shorter solution now... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 5:42 PM To: VBA Subject: [dba-VB] C# get project directory I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4442 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4443 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Mon Sep 21 09:48:38 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 16:48:38 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Another method with strings only is a bit long winded: string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; or - applying a bit of the good old DOS syntax: string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 10:02:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 11:02:27 -0400 Subject: [dba-VB] C# get project directory In-Reply-To: References: Message-ID: <4AB79583.50009@colbyconsulting.com> Gustav, I was hoping to find a property of some object that told me the solution base directory. It SEEMS SO LOGICAL. Sigh. I have every intention of creating a directory of my own to hold some files that this thing will create. I just want that directory to be portable (change with the location of the solution) and as close to the base solution path as possible. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. Thanks for this solution. It definitely should work. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Another method with strings only is a bit long winded: > > string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; > > or - applying a bit of the good old DOS syntax: > > string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; > > For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: > > string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); > > /gustav > > >>>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> > I want to set up a directory to store files directly under the project directory. I can get the exe > directory using Application.ExecutablePath but that is clear down in the bin directory etc. > > I want THIS path: > > E:\C# Projects\Grade Calculator <<<<< > > I have Googled till I am blue in the face and all I end up with is (where the exe is): > > D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug > > Any help appreciated. > > Thanks, > From Gustav at cactus.dk Mon Sep 21 10:27:47 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 17:27:47 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Oh, you get used to it. It has the advantage(?) too, that when you switch VS from Debug mode to Release mode, your app path follows. /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 17:02:27 >>> .. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. From jwcolby at colbyconsulting.com Mon Sep 21 12:46:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 13:46:08 -0400 Subject: [dba-VB] Merge rows Message-ID: <4AB7BBE0.6030807@colbyconsulting.com> My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From andy at minstersystems.co.uk Mon Sep 21 13:41:44 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 21 Sep 2009 19:41:44 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7BBE0.6030807@colbyconsulting.com> Message-ID: <44483FF525534000830F5F5010D5B73E@MINSTER> Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 14:10:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 14:10:09 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <4AB7BBE0.6030807@colbyconsulting.com> <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <893A33B2B6104479894E1266CAF81871@danwaters> I'd stick with a single preference for a car or a drink, but for women you'll need a subtable. Hope this helps! Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Monday, September 21, 2009 1:42 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Merge rows Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 15:51:46 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 15:51:46 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <893A33B2B6104479894E1266CAF81871@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> Message-ID: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> This is a tough question - not technically difficult but what's tough is actually making the choice! I think you'll need to get some guidance from your customer as to which single record to keep (the latest one?), or should you put the contents of all the related cells into one cell and delete the other rows? Or something else? This probably doesn't help . . . Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 16:37:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:37:41 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <4AB7F225.8010703@colbyconsulting.com> ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > From max.wanadoo at gmail.com Mon Sep 21 16:39:58 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 22:39:58 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F225.8010703@colbyconsulting.com> References: <44483FF525534000830F5F5010D5B73E@MINSTER> <4AB7F225.8010703@colbyconsulting.com> Message-ID: <4ab7f2ec.0a1ad00a.5698.26d3@mx.google.com> Well that's sorted then...give up the wife! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:38 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 16:54:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:54:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> Message-ID: <4AB7F632.5020803@colbyconsulting.com> Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan From DWUTKA at Marlow.com Mon Sep 21 17:01:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 21 Sep 2009 17:01:22 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> Message-ID: Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Mon Sep 21 17:04:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:04:56 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Are you saying that the FIRST JohnColby record you encounter is therefore the MASTER and the rest JohnColby record's data gets to update the MASTER? So, Rec 1. John Colby likes Fish (at the time he might have liked fish) Rec 2. John Colby does not like fish (might have been asked some time later, after a bad meal) Which takes precedence? Do you NOT overwrite existing data. Or DO you ? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:55 To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Sep 21 17:11:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:11:49 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Sep 21 17:18:13 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 21 Sep 2009 15:18:13 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: Merging them into one flat John Colby record is truly ugly, John. Why not separate them into a polls table (unless, of course, that's where you have them already) and use the John Colby record PK to connect them? Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 2:55 PM To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 17:31:20 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:31:20 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Message-ID: <4AB7FEB8.6080403@colbyconsulting.com> > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max From jwcolby at colbyconsulting.com Mon Sep 21 17:35:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:35:51 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4AB7FFC7.5080605@colbyconsulting.com> Well, the issue is that the client wants to do things like: Give me 5 million records where the income is in this range, has kids in this age range, has a dog and exercises. Now... You have two john colby records. The "exercises" info is in the first record, and the "has a dog" is in the second record. You just dropped John Colby from the selection because the AND failed. It would have succeeded had all the data been in one record. Essentially this table IS a Polls table. Someone just consolidated a ton of poll info into 640 fields a long time ago. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Merging them into one flat John Colby record is truly ugly, John. Why > not separate them into a polls table (unless, of course, that's where > you have them already) and use the John Colby record PK to connect them? > > Charlotte Foust > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, September 21, 2009 2:55 PM > To: dwaters at usinternet.com; Discussion concerning Visual Basic and > related programming issues. > Subject: Re: [dba-VB] Merge rows > > Dan, > > In fact there are 50 million records in the table (though not that many > "duplicates") so there is no "making a decision". Basically I have to > take row one and update it with row 2, 3, 4... Delete row 2,3,4... > > This is basically a table of "polls" that people have taken, with ~600 > fields where there may or may not be information about doing, wanting or > having that thing. Everything from information about the boat you own > to the electronics you own, to the medicine you take, whether you own a > dog or cat, hunt, fish etc. In order to get in the database you have to > have volunteered the information somewhere along the line. But you > might have taken several different polls at different times. > Thus one record might have the electronics you own, another the medicine > you take, and you don't even own a boat so those fields contain nothing. > > Like that. > > I just want to take all the John Colby records and merge them into a > single John Colby record, deleting all the extras when I am done. > > Of course this is one reason for my other question about getting rid of > any fields where there is no information in any record. If I am going > to process 50 million records, it would be good to not have to process > any fields where there is no info to merge. > > The other reason for the other question is that doing a table scan > against 50 million records with 640 fields is just plain going to take > longer than a table scan against 50 million records with only 400 > fields. It comes down to a matter of disk sectors to load. And with > 640 fields you cannot have indexes against all of them, so you are going > to be doing table scans. > > I just did a test where I did a Count() where... on a non-indexed field > and it took 1:18. So just doing these counts on all 640 fields could > take awhile. I will be counting and logging the count in my data > dictionary table. > > And off we go... > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 21 17:45:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:45:48 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FEB8.6080403@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> <4AB7FEB8.6080403@colbyconsulting.com> Message-ID: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Well, better brains then me will come up with the answer (are you there, Charlotte). What I would do is 1. Add an AutoNum field to the table - let that run overnight. This is good, as well you know. And you can make use of this from this point on. 2. set up the find-dupes wizard based on the natural key (!). 3. Extract the code from this. 4. put it into a module so that only those duplicate records are selected in a recordset 5. loop through the recordset. 6. do a secondary recordset based on the natural key where the autonum is not the same as the main record being looked at. 7. loop through the secondary records if found 8. update the main record. 9. delete the secondary record 10. move to next secondary record until none are left. 11. go to next main record. Now, I am not saying that is the most efficient. You may be able to do all this in an SQL statement. But, hey! At least I am trying to help. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 23:31 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Sep 21 17:55:29 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 22 Sep 2009 08:55:29 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Message-ID: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Mon Sep 21 17:59:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:59:37 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> Message-ID: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> 50 Million! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 21 September 2009 23:55 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 20:19:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 21:19:08 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> Message-ID: <4AB8260C.7090402@colbyconsulting.com> Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > From shamil at smsconsulting.spb.ru Tue Sep 22 01:59:47 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 10:59:47 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8260C.7090402@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> Message-ID: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Hi John, 3.086 million records seems to be manageable to be "deduped" in one go provided the source 50 million records table is already prepared. For "deduping" you can use 1. One stored procedure which: a) will insert new individual attributes' record and b) will update not null values for existing individual attributes' record. 2. One C#/VB.NET function to get records from the source 50 million records' table and to "feed" the above stored procedure. That's a rough plan. Of course developing SP with 640 parameters and C#/VB.NET code working with that SP is not an easy manual work - that SP and code could be generated. Not sure yet here that SP can have 640 parameters therefore it may be needed to have several SPs. To get source rows a T-SQL select expression with ROW_NUMBER() function should be used to have relatively small subsets of record batches to process. This selection can be done using multi-threaded C#/VB.Net code . Do you have any index over source 50 million rows table? - ROW_NUMBER() function will need such an index (I'm talking MS SQL 2005 here, maybe in MS SQL 2008 ROW_NUMBER() can be used without any indexes)... When source data deduped into ~3.086 million records table then that "small" table can get a few the most selective columns' indexes, and probably one compound natural key clustered index built using the most selective (/the most often used in queries) columns. If there are a few such columns at least one of which is used in all the queries then your application response time should be finally measured in seconds... I hope... That's basically it. Please correct me if you suppose that the above plan can't be fulfilled because of some reasons I'm missing here. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4445 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 22 03:09:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 22 Sep 2009 10:09:37 +0200 Subject: [dba-VB] Merge rows (now: seriously OT) Message-ID: So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... From jwcolby at colbyconsulting.com Tue Sep 22 07:13:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:13:07 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8BF53.70902@colbyconsulting.com> Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4445 (20090921) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 07:20:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:20:59 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8C12B.2040406@colbyconsulting.com> I think you are right in most regards. Copying all of the dupes out to a new table for deduping is definitely a must. After that I think it will be a case of iterating the recordset grabbing sets of dupe records, updating, deleting the duplicates, moving on. In fact perhaps even updating out to a second table, i.e. read from one write to another. The destination table will hold the resulting deduped recordset. As I mentioned in a previous email, the string length limitation will force me to process subsets of fields at a time. I also have to log all of the records being deleted so that I can delete those records back in my original source table. At least this kind of puzzle is fun to me. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil From max.wanadoo at gmail.com Tue Sep 22 08:04:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:04:35 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8C12B.2040406@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: JC, I dont understand what strings you are manipulating...I am confused by the seemingly conflicting postings. Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a value of true/false or is the fieldname = "Fld1" and the contents "Has Dog"? Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. If the recordsource is index on key and accessed in that order, then you have only to store the previous entry and change it as the recname changes. max On 22/09/2009, jwcolby wrote: > I think you are right in most regards. Copying all of the dupes out to a > new table for deduping is > definitely a must. After that I think it will be a case of iterating the > recordset grabbing sets of > dupe records, updating, deleting the duplicates, moving on. In fact perhaps > even updating out to a > second table, i.e. read from one write to another. The destination table > will hold the resulting > deduped recordset. > > As I mentioned in a previous email, the string length limitation will force > me to process subsets of > fields at a time. > > I also have to log all of the records being deleted so that I can delete > those records back in my > original source table. > > At least this kind of puzzle is fun to me. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million >> records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working >> with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be >> needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . >> Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in >> MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that >> "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application >> response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 08:24:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 09:24:59 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: <4AB8D02B.8070508@colbyconsulting.com> Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 08:31:09 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:31:09 +0100 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: On the contrary, it looks very simple to do in code, but i dont know about creating a complex sql string like that, if it gets that complicated I just do it in code - maybe a tad slower but what the heck, do something else and just let it run. strip some records into an mdb and email me if you want. max On 22/09/2009, jwcolby wrote: > Max, > > > JC, I don't understand what strings you are manipulating... > > In order to do this you (or at least I) pretty much have to use dynamic > queries. Create a string > variable, then build up the update SQL statement. That SQL string cannot be > more than 4K long IIRC. > > Well imagine 640 fields with field names like (a real field name) > > "medication_taken_for_adhd_adderall" or > "receive_info_on_health_related_bladder_control". > > Obviously the SQL string is going to get lengthy! > > > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a > value of true/false > > Yes, generally the field contains a 'Y' or an empty string ''. In some > cases (rare) the field has > various codes or numbers. For example there is a field for income with > codes '1' through 'T' with > each one being an income band of $5K. > > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with > subsequent JCRecords as you previously indicated. > > Yes, except you can't just "overwrite it", you have to update it IF there is > data in the next record. > > Two records > > Has_Dog, Has_Cat, Boat_Length > 'Y','','' > '','','42' > > If you simply "overwrite" the first with the second then you lose the fact > that the person has a dog > because you overwrote that field in the first record with an empty string > from the second record. > > EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If > so then update the first > record with the actual data containing field from the second record. But do > NOT update the fields > where the second record does not contain data. > > It starts to look more complex eh? > > Additionally, once this "merge" is done, all the records containing "merged > data" have to be > retained. All the records which were merged in to other records have to be > deleted. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> JC, I dont understand what strings you are manipulating...I am >> confused by the seemingly conflicting postings. >> Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a >> value of true/false >> >> or is the fieldname = "Fld1" and the contents "Has Dog"? >> >> Also, if the first JCRecord is going to be the master, then just >> overwrite the contents with subsequent JCRecords as you previously >> indicated. If the recordsource is index on key and accessed in that >> order, then you have only to store the previous entry and change it as >> the recname changes. >> >> max >> >> >> On 22/09/2009, jwcolby wrote: >>> I think you are right in most regards. Copying all of the dupes out to a >>> new table for deduping is >>> definitely a must. After that I think it will be a case of iterating the >>> recordset grabbing sets of >>> dupe records, updating, deleting the duplicates, moving on. In fact >>> perhaps >>> even updating out to a >>> second table, i.e. read from one write to another. The destination table >>> will hold the resulting >>> deduped recordset. >>> >>> As I mentioned in a previous email, the string length limitation will >>> force >>> me to process subsets of >>> fields at a time. >>> >>> I also have to log all of the records being deleted so that I can delete >>> those records back in my >>> original source table. >>> >>> At least this kind of puzzle is fun to me. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Shamil Salakhetdinov wrote: >>>> Hi John, >>>> >>>> 3.086 million records seems to be manageable to be "deduped" in one go >>>> provided the source 50 million records table is already prepared. >>>> >>>> For "deduping" you can use >>>> >>>> 1. One stored procedure which: >>>> a) will insert new individual attributes' record and >>>> b) will update not null values for existing individual attributes' >>>> record. >>>> >>>> 2. One C#/VB.NET function to get records from the source 50 million >>>> records' >>>> table and to "feed" the above stored procedure. >>>> >>>> That's a rough plan. >>>> >>>> Of course developing SP with 640 parameters and C#/VB.NET code working >>>> with >>>> that SP is not an easy manual work - that SP and code could be >>>> generated. >>>> >>>> Not sure yet here that SP can have 640 parameters therefore it may be >>>> needed >>>> to have several SPs. >>>> >>>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>>> should be used to have relatively small subsets of record batches to >>>> process. This selection can be done using multi-threaded C#/VB.Net code >>>> . >>>> Do >>>> you have any index over source 50 million rows table? - ROW_NUMBER() >>>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>>> MS >>>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>>> >>>> When source data deduped into ~3.086 million records table then that >>>> "small" >>>> table can get a few the most selective columns' indexes, and probably >>>> one >>>> compound natural key clustered index built using the most selective >>>> (/the >>>> most often used in queries) columns. If there are a few such columns at >>>> least one of which is used in all the queries then your application >>>> response >>>> time should be finally measured in seconds... I hope... >>>> >>>> That's basically it. >>>> >>>> Please correct me if you suppose that the above plan can't be fulfilled >>>> because of some reasons I'm missing here. >>>> >>>> Thank you. >>>> >>>> >>>> -- >>>> Shamil >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 08:36:28 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 17:36:28 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8BF53.70902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> Message-ID: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Hi John, OK, but in proposed solution there is no need to "string together 640 fields". Or do you mean that one static(/statically compiled) T-SQL statement has some limitations? Then you can make a view with two chars length of column names. <<< the client wants to ADD more fields. >>> Well, then you can create extension table for new fields. BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query your database. I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle such a table with 640 fields. Can you publish this table structure plus say 100 records with cleaned-up or hashed name, address, phone and other personal information? Thank you. -- Shamil P.S. <<< This is truly a database from hell. >>> Yes. Some people supposes that all the computing technology is coming directly from the Hell - they promise a lot but they take even more out - your life... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 4:13 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > From drawbridgej at sympatico.ca Tue Sep 22 08:57:50 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 09:57:50 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FFC7.5080605@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: John, For clarity, how do you identify a specific John Colby? OK so may be there is only 1 John Colby, but how would you distinguish (and with what certainty) to Tom Smith's for example. Is there some defined population of individuals that get polled and repolled? Jack From jwcolby at colbyconsulting.com Tue Sep 22 09:00:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:00:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Message-ID: <4AB8D871.6060001@colbyconsulting.com> Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 09:10:29 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:10:29 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Hi John, I suppose you can use static (compiled) SP - I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Procedure MySP ( @firstName nvarchar(50), @lastName nvarchar(50), --- @f1 int, ... @fn nvarchar(80) ) set nocount on declare @testCount int select @testCount = count(*) from MyTable where FirstName = @firstName and LastName = @lastName if (@testCount = 0) begin -- insert End else begin update myTable set f1 = IsNull(@f1, f1), ... fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end where FirstName = @firstName and LastName = @lastName end set nocount off Try. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:25 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil From shamil at smsconsulting.spb.ru Tue Sep 22 09:17:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:17:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <<< you lose the data in the first. >>> John, Our postings crossed - I have posted solution for the above issue in my recent posting. <<< that there will be 50 million records >>> But you say there are "just" 3+ millions when the data are "deduped" - that should be not a big issue for the joins on your mighty computers (BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:00 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 09:21:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:21:15 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: <4AB8DD5B.2050906@colbyconsulting.com> Jack, I was leaving that out to prevent obscuring the points I wanted to discuss. In fact what happened is that I received a text file, fixed width that contained all of this data in it. The file contained 65 million records that included fields for first name, last name, address, city, state, and zip. I loaded it into a table, with an autonumber PKID. I then pulled the name / address info out into a second table and ran it through the address validation program I have discussed in the past (virtual machines etc). That process causes 15 million records to fall out as undeliverable. 50 million records remained, the records we discuss here. So I have two tables, one with PK / name / address and the second with PK / poll information data. What I actually do to group the records is in the Address table is that I created a HashPerson field, binary(250). I then ran the first/last/addr/zip5/zip4 through a hash function (in SQL Server) which returned a repeatable unique number for each such string of data input. So now I have this hash field which contains exactly the same binary representation for every record with the same first/last/addr/zip5/zip4. So I can group on the HashPerson to count duplicates, I can select on HashPerson to get the PKIDs of all the records for a single person etc. Obviously I am not effectively dealing with issues like "Jack Colby" and "John Colby" at the same address. Same person, nicknames. I have not even attempted to do such things. Nor mis-spellings, minor variations in address etc. These things DO exist, but statistically they are such a small percentage of the total, and I had so much else to deal with, that it made no sense to go there yet. Maybe some day. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > John, > > For clarity, how do you identify a specific John Colby? OK so may be there > is only 1 John Colby, but how would you distinguish (and with what > certainty) to Tom Smith's for example. > Is there some defined population of individuals that get polled and > repolled? > Jack > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 09:29:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:29:37 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Message-ID: <4AB8DF51.1050106@colbyconsulting.com> >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil From fuller.artful at gmail.com Tue Sep 22 09:42:54 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 22 Sep 2009 10:42:54 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> That's almost exactly what I would propose, JC, with perhaps a small revision. I was thinking that you could use a pair of recordsets, the first consisting of the first and only the first record with value xxx, and the second consisting of all the other instances of xxx. Then you can skip through the second recordset and compare each record with the record in the first recordset, updating only the single record with data from the current row in the second recordset. The idea is to update only one record in each group. Once that is done, then you can select top 1 of each group and group by the identifier. A Select Into would give you only the first record from each group. You could trash or rename the large table and the target table created by the Select Into would contain only the rows of interest, It occurs to me that you could probably even generate the compare/update statements, since they will be almost identical save for the given fieldname. The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. hth, Arthur From cfoust at infostatsystems.com Tue Sep 22 09:45:22 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:45:22 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Hmmn ... If wiseGuy = 'Gustav' The Kill(wiseGuy) Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 22, 2009 1:10 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 09:52:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 15:52:36 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:51:00 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:51:00 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: John, I'm confused. Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records, perhaps in a union query, that contained both answer 1 and answer 2? Is the client wanting to query across polls, so that if the respondent answers answer1 in one poll and answer2 in another, they want to see that client? It sounds like totally meaningless information (not an uncommon request, in my experience). Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:00 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two > chars length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to > query your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework > handle such a table with 640 fields. Can you publish this table > structure plus say 100 records with cleaned-up or hashed name, > address, phone and other personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more > out - your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try > to string together 640 fields with long field names (and they are > loooong) you end up with an error message from SQL Server that the > string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one >> go provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code >> working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() >> function should be used to have relatively small subsets of record >> batches to process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe >> in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably >> one compound natural key clustered index built using the most >> selective (/the most often used in queries) columns. If there are a >> few such columns at least one of which is used in all the queries >> then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be >> fulfilled because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows >> 3.086 million individduals with multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 09:55:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:55:13 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> Message-ID: <4AB8E551.8050902@colbyconsulting.com> >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Tue Sep 22 09:59:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:59:51 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> Message-ID: <4AB8E667.6010707@colbyconsulting.com> Arthur > The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. And the answer is "nothing". There is no way to determine date order of these records, they simply did not have that data in the original records. Thus any answer is equally valid. Take the FIRST answer and keep it. Never update the first record FieldN if there is already data in that field. This data is full of incongruities like this. Income could rise or fall, children could leave home or die, spouse could divorce or die. We cannot discover any of this kind of thing. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's almost exactly what I would propose, JC, with perhaps a small > revision. I was thinking that you could use a pair of recordsets, the first > consisting of the first and only the first record with value xxx, and the > second consisting of all the other instances of xxx. Then you can skip > through the second recordset and compare each record with the record in the > first recordset, updating only the single record with data from the current > row in the second recordset. The idea is to update only one record in each > group. Once that is done, then you can select top 1 of each group and group > by the identifier. A Select Into would give you only the first record from > each group. You could trash or rename the large table and the target table > created by the Select Into would contain only the rows of interest, > It occurs to me that you could probably even generate the compare/update > statements, since they will be almost identical save for the given > fieldname. > > The only potential fly in the ointment that I can see is What to do if the > records being compared both contain values that do not match, i.e. A.Has_Dog > = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data > collections. > > hth, > Arthur > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:58:55 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:58:55 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Sep 22 10:01:51 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 22 Sep 2009 10:01:51 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Message-ID: With VB 6 yes. And I'm sure you could do something very similar in VB.Net or C#. It's just API calls. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, September 21, 2009 5:12 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] c# - Monitor folder and run application Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Sep 22 10:17:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 11:17:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4AB8EA7D.1080401@colbyconsulting.com> Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust From max.wanadoo at gmail.com Tue Sep 22 10:42:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:42:35 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> > Does that clarify it for you? It does, so really with the Tabs JIT you are not much better off. With my On-Demand approach, only data that is wanted there-and-now is loaded each time you navigate between records AND furthermore, I give them the option of a blank sub-form which means there is no extraneous data overhead when navigating unless the user wants it. I think my On-Demand approach is better for lots of reasons, but if your are happy with your JIT-Tabs approach then I am happy for you. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 22 September 2009 15:59 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 10:50:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:50:17 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4ab8f27c.0a04d00a.2c43.215f@mx.google.com> No you don't! Sheeesh! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 15:00 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <00de01ca3b9c$e8b0fa90$ba12efb0$@spb.ru> <<< then do the entire thing in memory, updating the first record with only "data containing fields" >>> John, I suppose that MS SQL is "smart enough" to do that "dirty work" for you - if you update a field with the same value it has in the case the updating value is NULL or (NULL or EMPTY string for char data) as it's done in SP I outlined then MS SQL will not make that field update at all... <<< Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. >>> ...you can do all that in one SP, which I have got outlined in my previous posting <<< This might be a good thing to do in C# to learn ADO stuff. >>> Yes, but that would be rather simple (although large because of 640 fields) function, which will use: SqlConnction, SqlCommand and SqlDataReader Remark: as I mentioned previously you can use ROW_NUMBER() T-SQL function to organize getting records' batches to be processed, say 1000 or at a time, and getting that batches can be made as a multi-threaded function... <<< Relatively speaking, this would no doubt FLY. >>> ...then it could fly, although I can't say for sure because "flying program" is a relative term heavily depending on one's point of view/experience :) --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:30 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8E551.8050902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> Message-ID: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <<< However the results should be ... satisfying. ;) >>> Yes, but for 3+ millions records your current system looks more than enough from here. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:55 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8EA7D.1080401@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> Message-ID: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <<< Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) ... The entire point is to make the process faster and faster and faster. >>> John, If you have many [has Kids], [HasCat], [HasDog] kind of fields you can consider combining them into bit array fields, for predefined range values you can make say half-byte groups bit array fields values... by thus minimizing the size of your table record... --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 22 11:09:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:09:59 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f719.0702d00a.6422.15b2@mx.google.com> Immer! LOL Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 22 September 2009 09:10 To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:14:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:14:07 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> Message-ID: <4AB8F7CF.9010304@colbyconsulting.com> Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max From jwcolby at colbyconsulting.com Tue Sep 22 11:16:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:16:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> Message-ID: <4AB8F87A.3090701@colbyconsulting.com> Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 11:30:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:30:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> Message-ID: <4AB8FBB0.3060904@colbyconsulting.com> This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil From max.wanadoo at gmail.com Tue Sep 22 11:29:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:29:54 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8F7CF.9010304@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> Message-ID: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> > With your approach leaving the subforms bound is difficult to say the least. As difficult as one line of code Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:14 To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 11:33:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 20:33:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8F87A.3090701@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <4AB8F87A.3090701@colbyconsulting.com> Message-ID: <00e601ca3ba2$5c221a40$14664ec0$@spb.ru> John, Yes, that is huge. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From drawbridgej at sympatico.ca Tue Sep 22 11:35:40 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 12:35:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <61CB308F5EE746B69904DD47CBF50795@AMDXP> My initial thought was bit fields also, until I saw boat_length and income identified by ranges. -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 12:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:39:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:39:37 -0400 Subject: [dba-VB] Counting data elements Message-ID: <4AB8FDC9.1090004@colbyconsulting.com> I am in the process of counting data elements in my database from hell fact table. It turns out there are 584 fields in the table. No indexes (I created a new table copy in a new database to do this stuff) and each field count is taking about 0:1:40. When I am done with this I will have a list of fields and the count of data elements in each field. The objective is to see if I can delete some of the fields because they contain no data elements. From reading the table definition spreadsheet I got from the client, I am reasonably certain that there are completely empty fields. Not sure how many. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 11:40:45 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:40:45 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> Message-ID: <4AB8FE0D.4010704@colbyconsulting.com> Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 12:03:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 13:03:50 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <61CB308F5EE746B69904DD47CBF50795@AMDXP> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <61CB308F5EE746B69904DD47CBF50795@AMDXP> Message-ID: <4AB90376.2040103@colbyconsulting.com> Yes, there are fields with real data in them. Mostly they are just Y or nothing. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > My initial thought was bit fields also, until I saw boat_length and income > identified by ranges. > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 12:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 13:35:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 19:35:03 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8FE0D.4010704@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> Message-ID: <4ab91918.1c05d00a.04a7.3583@mx.google.com> Only one sub form is loaded at any one time. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:41 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 14:03:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 23:03:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <00f401ca3bb7$676c1170$36443450$@spb.ru> John, You can use bitmask(/bitwise) operations - and you can use symbolic constants/variables for bits to not get "seriously nervuos". How many Boolean value fields do you have in your table? -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 14:20:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 15:20:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f401ca3bb7$676c1170$36443450$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> Message-ID: <4AB9239A.1010205@colbyconsulting.com> Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 15:15:13 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 00:15:13 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9239A.1010205@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> Message-ID: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - that will be BINARY(50) in T-SQL. Although I'm not currently sure you can implement bitwise logical operations solely using T-SQL: but I suppose you can get subset of data using non-Boolean where clause, and then scan it in C#/VB.NET and filter using bitwise C# operations/functions over bit arrays. Something like that should work I suppose. Please correct me if I'm wrong. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 11:21 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 15:22:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:22:16 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab91918.1c05d00a.04a7.3583@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> Message-ID: <4AB931F8.8010407@colbyconsulting.com> Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 15:25:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:25:06 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB932A2.6050301@colbyconsulting.com> Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: <00f601ca3bc8$62896570$279c3050$@spb.ru> Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB932A2.6050301@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> Message-ID: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> John, OK, someday you can make it working/flying using C# with your current DB size "shrinked" ~8 times and your current processing time shortened X times (to an order of magnitude? - wild guess)... ... but do not wait until you'll get fluent with C# - it's time consuming as everybody's experience shows - and it's not needed to get the outlined above results - just do it - how to do it seems to be clear now?... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 12:25 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 16:23:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 17:23:35 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> Message-ID: <4AB94057.3080704@colbyconsulting.com> Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Sep 22 16:48:02 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 07:48:02 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: > > John, > > > > You can use bitmask(/bitwise) operations - and you can use symbolic > > constants/variables for bits to not get "seriously nervuos". > > > > How many Boolean value fields do you have in your table? > > > > -- > > Shamil > > > > -----Original Message----- > > From: dba-vb-bounces at databaseadvisors.com > > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Tuesday, September 22, 2009 8:31 PM > > To: Discussion concerning Visual Basic and related programming issues. > > Subject: Re: [dba-VB] Merge rows > > > > This is an idea worthy of consideration. The problem is translating the > > client's original field > > name to a bit in the bit field when he sends me an order. > > > > The client has a spreadsheet of these fields and sends me orders with the > > field names (or more often > > a "record number" in the spreadsheet). I look down through the > spreadsheet > > to find the record > > number, translate that to the field name, then drop that field name into > the > > where clause of a query. > > > > It would be fascinating to have an already translated bit map of these > > fields, and able to do these > > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > > Bit69) OR (BIT190 OR > > Bit191) etc. > > > > Not exactly readable, but I have to assume that it would be much faster. > It > > would make me seriously > > nervous though that I actually got the right bits. As it is now it is > > "plain English", you can read > > the field names from the SQL statement. I would definitely have to have a > > well tested tool that > > performed the bit lookup and wrote the where(). > > > > Can you index bits? If not you would turn the actual query into a ton of > > table scans, though as you > > mention the size of the table would shrink dramatically. It might > actually > > be possible to get the > > entire table into memory if each field (that contained just 'Y' values) > was > > a single bit. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Shamil Salakhetdinov wrote: > >> <<< > >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > > HASCat) > >> OR ...) > >> ... > >> The entire point is to make the process faster and faster and faster. > >> John, > >> > >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > >> consider combining them into bit array fields, for predefined range > values > >> you can make say half-byte groups bit array fields values... by thus > >> minimizing the size of your table record... > >> > >> --Shamil > > > > _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Sep 22 17:06:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 23:06:57 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB931F8.8010407@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> <4AB931F8.8010407@colbyconsulting.com> Message-ID: <4ab94aa8.0a04d00a.02ca.ffff9409@mx.google.com> I can see that in your situation. In mine it is different. Horses for courses. If I were to load and leave loaded all the subforms then I would be back where I started. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 21:22 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 21:57:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 22:57:39 -0400 Subject: [dba-VB] I'm baffled Message-ID: <4AB98EA3.9070806@colbyconsulting.com> I am trying to return a count of data items in a field of my table. When I directly execute the following I get a count: SELECT COUNT(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_code <> '') The count is 15675589. When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of records in the table. The SQL is: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (@fldname <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' As you can see everything is the same except @FldName which is being read out of a cursor of field names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to know why. Somehow I need to "translate" @FldName to the actual name of the field. What is the syntax to get what I need here? TIA, -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Sep 23 00:25:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 15:25:53 +1000 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Household_Occupation_Code is a fieldname (an object) @fldname is a string Your SP version evaluates to: SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ('Household_Occupation_Code' <> '')) rather than SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_Code <> '')) To interpret the variable, you could build your query dynamically and then EXECute it in your SP. Something like: EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + 'FROM dbo.tblHSIDModified ' + 'WHERE (" + @fldsname + '<> ''''))' -- Stuart On 22 Sep 2009 at 22:57, jwcolby wrote: > I am trying to return a count of data items in a field of my table. When I directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' > > As you can see everything is the same except @FldName which is being read out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 01:06:50 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:06:50 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> Message-ID: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Hi Stuart, We're talking C#/VB.NET here? - try test code in P.S - =========== one billion =========== of bitwise AND operations for ============================ two 400 bits long bit arrays ============================ takes about ==================================== 1 minute 4 seconds 260 milliseconds ==================================== on my "mere mortals PC" - two years old Dual Core Pentium. Please correct me if you or anybody else here will find mistakes in my coding/testing results. Thank you. -- Shamil P.S. static void test1() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; values2[225] = true; values2[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:54:40.993 //09:55:44.733 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 } static void test2() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = { true, false, false, true }; bool[] values2 = { false, true, false, true }; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:52:32.604 //09:52:46.785 //0001 } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 1:48 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil <<< snip>>> __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 01:14:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:14:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94057.3080704@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> <4AB94057.3080704@colbyconsulting.com> Message-ID: <011001ca3c15$23a9f0c0$6afdd240$@spb.ru> Hi John, Yes, "balancing act" - the same story here. The answer is to subcontract an expert who will deliver (and will be paid full project price) only in the case they will produce agreed upon result. Then study and use their code to further tune your customer's application performance - and that way getting C# proficiency much faster than by self-education and trial & error (often throw-away) coding practice... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 1:24 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From stuart at lexacorp.com.pg Wed Sep 23 01:19:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 16:19:21 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Message-ID: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart On 23 Sep 2009 at 10:06, Shamil Salakhetdinov wrote: > Hi Stuart, > > We're talking C#/VB.NET here? - try test code in P.S - > > =========== > one billion > =========== > > of bitwise AND operations for > > ============================ > two 400 bits long bit arrays > ============================ > > takes about > > ==================================== > 1 minute 4 seconds 260 milliseconds > ==================================== > > on my "mere mortals PC" - two years old Dual Core Pentium. > > Please correct me if you or anybody else here will find mistakes in my > coding/testing results. > > Thank you. > > -- > Shamil > > P.S. > > > static void test1() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > values2[225] = true; > values2[399] = true; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > //09:54:40.993 > //09:55:44.733 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > } > > static void test2() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = { true, false, false, true }; > bool[] values2 = { false, true, false, true }; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > //09:52:32.604 > //09:52:46.785 > //0001 > } > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 1:48 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > The data storage requirements may be smaller, but the time required to > perform multiple > bitwise operation functions on every one of those 50 milllion rows is going > to be a lot slower > than using simple selection criteria on fields. > > -- > Stuart > > > On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > > > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > > that will be BINARY(50) in T-SQL. > > Although I'm not currently sure you can implement bitwise logical > operations > > solely using T-SQL: but I suppose you can get subset of data using > > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > > bitwise C# operations/functions over bit arrays. > > > > Something like that should work I suppose. > > > > Please correct me if I'm wrong. > > > > -- > > Shamil > <<< snip>>> > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From paul.hartland at googlemail.com Wed Sep 23 01:40:56 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Wed, 23 Sep 2009 07:40:56 +0100 Subject: [dba-VB] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <38c884770909222340m31f1155dw2784fab5a8f2422a@mail.gmail.com> John, Just an idea off the top of my head, have you tried enclosing the @fldname in brackets like below: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ((@fldname) <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' Paul 2009/9/23 jwcolby > I am trying to return a count of data items in a field of my table. When I > directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is > equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data > elements' > > As you can see everything is the same except @FldName which is being read > out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every > record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > -- Paul Hartland paul.hartland at googlemail.com From shamil at smsconsulting.spb.ru Wed Sep 23 01:54:42 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:54:42 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Message-ID: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Hi Stuart, No problem. "BitArrays population magic" isn't a complicated task for John "DB from Hell". BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB from Hell" with 50 million records it will be 50 millions * 400 = 20 billion bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do expect that even "brute force crunching" will produce a kind of instantaneous results for the part of query where char "Y/N" columns are currently used. And once loaded in memory the info can be kept/updated there (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much IOW maybe there is no even a need to substitute in "DB from Hell" current char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... Please correct me if you find I'm wrong somewhere in my considerations/expectations/evaluations... Thank you. -- Shamil P.S. static void test3() { //const long CYCLES_QTY = 1000000000; // 1 billion const long CYCLES_QTY = 50000000; // 50 millions bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); for (int i = 0; i < 400; i++) bitTest2[i] = true; Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.Xor(bitTest2); //bitTest1.Or(bitTest2); //bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); // 50 millions - AND //10:32:56.772 //10:32:59.548 //10000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 // 50 millions - OR //10:34:27.644 //10:34:30.451 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 // 50 millions - XOR //10:35:27.414 //10:35:30.182 //01111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111011111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111110 Console.WriteLine(); foreach (bool bit in bitTest2) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 10:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 02:19:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 11:19:48 +0400 Subject: [dba-VB] Useful information if you work with PropertyGrid, and not only with it... Message-ID: <011201ca3c1e$3d5beb00$b813c100$@spb.ru> Hi All, FYI: ICustomTypeDescriptor, Part 1 http://msdn.microsoft.com/en-us/magazine/cc163816.aspx ICustomTypeDescriptor, Part 2 http://msdn.microsoft.com/en-us/magazine/cc163804.aspx -- Shamil From stuart at lexacorp.com.pg Wed Sep 23 03:45:49 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 18:45:49 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Message-ID: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 10:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Sorry, > > I was under the impression that we were talking about selecting rows from > JC's "Database > >From Hell", not just manipulating bit arrays which we have somehow > magically populated > without pulling data from SQL Server. > > > -- > Stuart > > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 04:44:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 13:44:08 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> Message-ID: <000701ca3c32$673246e0$3596d4a0$@spb.ru> Stuart, I did mean that once loaded bit array will be kept "warm" in memory (John has enough memory for that). It's unclear what are the main type of queries of JC's customer (John can you clarify this issue?) - if that queries are to select a few thousand individual records as you suggest(?) and all the queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will outperform MS SQL, which (MS SQL) will have to scan the whole 50 million records, and "brute force bits crunching" will return a few thousand individual records IDs in ~3 seconds(?), and those IDs can then be used to select the records from the "DB from Hell" and apply the rest of the WHERE filtering criteria to select a subset; - if that queries are to select a few millions records and calculate some stats on them and all that queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will again outperform MS SQL for bit operation, as for the other part of WHERE clause - it could be possible to use LINQ for Objects here if all the compacted records can be loaded in memory on huge JC's computer - and if that will be possible then LINQ for Objects (of just custom programming of selection criteria logic evaluation + counting stats) should let to outperform MS SQL I expect... Recap: it all depends on the type of the queries to run against "DB From Hell" - if 80-90% of them fit first or the second type of queries mentioned above then it does make sense for compacted records to use "brute force bits crunching" approach as it might result in considerable shortening of the time queries run. If it doesn't make any sense there will a query run within a minute or within one or a couple of hours then "brute force bits crunching" isn't needed there... Or do you have your queries already running over "DB from Hell" within a minute/several minutes, John? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 12:46 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > <<< snip >>> From jwcolby at colbyconsulting.com Wed Sep 23 07:36:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:36:19 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <000701ca3c32$673246e0$3596d4a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> Message-ID: <4ABA1643.9090201@colbyconsulting.com> Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Wed Sep 23 07:50:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:50:22 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Message-ID: <4ABA198E.8070600@colbyconsulting.com> Stuart, When I do that I get an error "must declare the scalar variable @DataCnt" John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Household_Occupation_Code is a fieldname (an object) > @fldname is a string > > Your SP version evaluates to: > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE ('Household_Occupation_Code' <> '')) > > rather than > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_Code <> '')) > > > To interpret the variable, you could build your query dynamically and then EXECute it in > your SP. Something like: > > EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + > 'FROM dbo.tblHSIDModified ' + > 'WHERE (" + @fldsname + '<> ''''))' > > From shamil at smsconsulting.spb.ru Wed Sep 23 08:28:24 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 17:28:24 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ABA1643.9090201@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> <4ABA1643.9090201@colbyconsulting.com> Message-ID: <001201ca3c51$bb980480$32c80d80$@spb.ru> Hi John, Thank you for your reply. BTW, how much it takes in average to run a customer query using your current huge DB, and what size on disk does this DB occupy including all index files, how much RAM is needed, what are hard disks and CPU? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 4:36 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From fuller.artful at gmail.com Wed Sep 23 08:42:14 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 23 Sep 2009 09:42:14 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4ABA198E.8070600@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> <4ABA198E.8070600@colbyconsulting.com> Message-ID: <29f585dd0909230642r539e524agb698acd26bc36c9b@mail.gmail.com> I tried this approach on one of my own databases and it worked just fine. Given the differences in tables, I did a NOT NULL but that is beside the point I think. Here is my sproc and an example call: IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE SPECIFIC_SCHEMA = N'BOM' AND SPECIFIC_NAME = N'ap_CountByField' ) DROP PROCEDURE BOM.ap_CountByField GO CREATE PROCEDURE BOM.ap_CountByField @fld_name varchar(100) AS SELECT COUNT(*) FROM BOM.AssemblyComponents WHERE @fld_name IS NOT NULL GO -- ============================================= -- Example to execute the stored procedure -- ============================================= EXECUTE BOM.ap_CountByField 'AssemblyComponentID' GO hth, Arthur From shamil at smsconsulting.spb.ru Wed Sep 23 16:56:43 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 24 Sep 2009 01:56:43 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) In-Reply-To: <00f601ca3bc8$62896570$279c3050$@spb.ru> References: <00f601ca3bc8$62896570$279c3050$@spb.ru> Message-ID: <004301ca3c98$bdeaaed0$39c00c70$@spb.ru> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4451 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Thu Sep 24 05:50:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 24 Sep 2009 12:50:41 +0200 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: Hi Shamil It could be interesting to have a small report from you as you proceed! But the course itself - as described in the right column on the link you provided - isn't it well below your current skills? /gustav >>> shamil at smsconsulting.spb.ru 23-09-2009 23:56 >>> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management-Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From jwcolby at colbyconsulting.com Mon Sep 28 10:19:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:19:09 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <200909241755.n8OHtqPB016788@databaseadvisors.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> Message-ID: <4AC0D3ED.2060201@colbyconsulting.com> Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 28 10:44:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:44:22 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4AC0D9D6.9080600@colbyconsulting.com> I just managed to Alt-Tab back to Management studio, and that application is updating the screen again (though not the cursor movement). the little "Executing query" icon is rotating, and the query timer is counting up the seconds (01:47:08 ATM). I just discovered (on my laptop) the set IO affinity setting in SQL Server which I did not set. No idea what that does for me but I wonder if that being assigned to SQL Server for all processors could be part of the problem. John W. Colby www.ColbyConsulting.com jwcolby wrote: > Well I thought that assigning three processors to the SQL Server software was the answer, and it in > fact did make a difference in some cases, but there is still something happening that "locks up" the > server. IO started a long running update query going this morning and immediately afterwards I was > able to move around, look at other stuff. Then I went away to do other things. When I came back it > was "locked up" - with the Management studio application full screen, and the cursor immovable. Of > course I thought it was locked up, and I have always believed that it was literally never going to > come back. > > I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I > was at Windows Explorer, not Management Studio. So the machine is in fact responding, but > glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to > another machine the cursor is moving just fine, when I move back to this machine it is locked up. > However the cursor changed from the insertion pointer icon to the arrow icon when i switched from > Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is > just responding glacially. > > This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged > three of the processors when it began processing the query so I am comfortable that it in fact is > correctly using just three processors. > > So what is happening that would so completely freeze up the server that the cursor won't even move? > > Weird. > > Has anyone else out there ever experienced this? Found a solution? > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 28 11:00:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 28 Sep 2009 17:00:28 +0100 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4ac0ddb1.0508d00a.4dcd.012c@mx.google.com> If it is responding, then Ctrl-Alt-Delete to Task Manager and click on processes to sort them and see what process is taking the ticks. There are other *thread* software around mentioned here before which gives more granularity of the processes. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 28 September 2009 16:19 To: Discussion concerning MS SQL Server; VBA; Access Developers discussion and problem solving Subject: Re: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:04:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:04:39 -0400 Subject: [dba-VB] c# text box changed event Message-ID: <4AC16B37.2000605@colbyconsulting.com> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com From michael at ddisolutions.com.au Mon Sep 28 21:09:12 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:09:12 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Hi John, Is the control bound? Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:05 PM To: VBA Subject: [dba-VB] c# text box changed event I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:26:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:26:22 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Message-ID: <4AC1704E.1000201@colbyconsulting.com> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > From michael at ddisolutions.com.au Mon Sep 28 21:32:23 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:32:23 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582474@ddi-01.DDI.local> How about KeyDown, Leave combinations then? When keydown is fired set dirty, When leave fires on a dirty control 'save' the data. Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:26 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# text box changed event No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Mon Sep 28 22:33:42 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 13:33:42 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From Gustav at cactus.dk Tue Sep 29 05:04:51 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 12:04:51 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! Anyway, I had the same issue and worked out this very simple method: private void textBoxName_TextChanged(object sender, EventArgs e) { TextBox textBox = (TextBox)sender; if (textBox.Focused) { Console.WriteLine(textbox.Text); } } /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by > code. Is there a change event that fires for manual editing but not by code editing? From jdthree at frontiernet.net Tue Sep 29 06:50:22 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Tue, 29 Sep 2009 07:50:22 -0400 Subject: [dba-VB] XML LINQ Help! In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Message-ID: <003c01ca40fb$07061ad0$15125070$@net> Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 29 08:14:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:14:31 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <4AC20837.2090004@colbyconsulting.com> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 08:45:00 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 15:45:00 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? From jwcolby at colbyconsulting.com Tue Sep 29 08:58:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:58:02 -0400 Subject: [dba-VB] SPAM-LOW: Re: c# text box changed event In-Reply-To: References: Message-ID: <4AC2126A.2070301@colbyconsulting.com> Gustav, > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. I keep good company I suppose? I never used c# in the past, only vb.net. The syntax is different enough that it requires at least some study. I use the class to force myself to put in the hours. As a professional developer it is easy to get sidetracked and not do the study, especially when you have no paying work to keep you in the area. Plus theoretically it provides me another place to ask questions, interface with others working in the language etc. I plan on doing this and the next level class, at which point I will be most of the way through the book and hopefully well on my way. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. > > As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. > This: > > TextBox textBox = (TextBox)sender; > > does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: > > CheckBox checkBox = (CheckBox)sender; > > What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> > Gustav, > > > Are we allowed to help with homework? > > LOL. > > The homework does not involve classes, collections, or even the messagebox (all used in my version > of the homework) because we don't even get to that until next semester. I am just trying to > entertain myself and learn something beyond "how does the string object work". > > This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on > chapter 4 - How to work with numeric and string data. > > That is a cool method of discovering the source of the change event. I have too admit though that I > don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't > we error if this is not a text box type? And whatever caused the change has the focus, so why > doesn't the object (once cast) always say that it has the focus? > > I'm confused. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! >> >> Anyway, I had the same issue and worked out this very simple method: >> >> >> private void textBoxName_TextChanged(object sender, EventArgs e) >> { >> TextBox textBox = (TextBox)sender; >> if (textBox.Focused) >> { >> Console.WriteLine(textbox.Text); >> } >> } >> >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> >> No. I am doing a homework assignment where I collect grades in classes, and then move back and >> forth through the classes. I have chosen to use a shared text box where the grade classes display >> their grades, and the user enters new grades. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Michael Maddison wrote: >>> Hi John, >>> >>> Is the control bound? >>> >>> Cheers >>> >>> Michael M >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Tuesday, 29 September 2009 12:05 PM >>> To: VBA >>> Subject: [dba-VB] c# text box changed event >>> >>> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >>> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >>> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 10:01:08 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 17:01:08 +0200 Subject: [dba-VB] XML LINQ Help! Message-ID: Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From shamil at smsconsulting.spb.ru Tue Sep 29 14:47:33 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 29 Sep 2009 23:47:33 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <009e01ca413d$b17425b0$145c7110$@spb.ru> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 29, 2009 5:45 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? __________ Information from ESET NOD32 Antivirus, version of virus signature database 4468 (20090929) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From michael at ddisolutions.com.au Tue Sep 29 18:32:21 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:32:21 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> <003c01ca40fb$07061ad0$15125070$@net> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247C@ddi-01.DDI.local> Thanks Jim, Going through the docs on MSDN http://msdn.microsoft.com/en-us/library/bb675196.aspx they do it slightly differently... XmlReader r = XmlReader.Create ( @path ); while ( r.NodeType != XmlNodeType.Element ) r.Read ( ); XElement e = XElement.Load ( r ); IEnumerable attList = from att in e.Elements ( ).Attributes ( "MID" ) //where (string) att.Value == "SR_20090929" //this works select att; foreach ( XAttribute att in attList ) { Console.WriteLine ( att.Value ); } Maybe they used a XmlReader just to demonstrate its use? Havn't found a best practices yet. When I suss out how to enumerate the races I'll post back. Cheers Michael M Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Tue Sep 29 18:51:52 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:51:52 +1000 Subject: [dba-VB] XML LINQ Help! References: Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247D@ddi-01.DDI.local> Hi Gustav, I considered dumping the lot into a dataset but at the moment the end result is supposed to be xml to be loaded into Excel. And you are also correct that I don't need to load from a file. The web service methods returns XmlElement, I wrote it out to a xmlDocument for my convienience. The client was going to handle the Excel side but is now having second thoughts :-) So now I'm looking at extracting just the data needed and exposing to Excel as Arrays. I think that will make it easier to control in Excel, if anyone has other suggestions I'm all ears. Cheers Michael M Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From Gustav at cactus.dk Wed Sep 30 02:31:22 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 09:31:22 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 30 05:30:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 30 Sep 2009 14:30:08 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <00c401ca41b8$fd3ece20$f7bc6a60$@spb.ru> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4469 (20090930) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Wed Sep 30 06:43:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 13:43:21 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil Thanks. That requires less code for each control which is a good thing. However, it doesn't address the issue I had when browsing records in formview with bound textboxes. Perhaps both methods should be combined? I think we miss an event: UserChangedText /gustav >>> shamil at smsconsulting.spb.ru 30-09-2009 12:30:08 >>> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 00:48:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 09:48:18 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <4dd71a0c0908301447s1c1fc75cw1eac8e9761f2a50@mail.gmail.com> Message-ID: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 1 01:54:39 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 10:54:39 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> References: <006901ca2a21$702c01a0$508404e0$@spb.ru> <00a301ca2a60$97e5b080$c7b11180$@spb.ru> <00c601ca2a8a$6c0c7690$442563b0$@spb.ru> Message-ID: <00cb01ca2ad1$150793b0$3f16bb10$@spb.ru> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 9:29 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have got a helping hand from Mike, Gustav and Doug who happened to be "Lucky Guys" (thank you guys!) - they have referred below sample working well "out of the box". This sample solution (in Mike's interpretation) is posted here: http://northwind.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26600#D ownloadId=81391 (~65KB) It can be used as a test to see if your system is "WCF Web Services Development Ready". It has now WCF web service reference set OK (as this reference setting happened on Mike's VS2008) but when I run it I'm getting runtime error: "The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state." I'm currently "digging further" trying to make this sample working on my system - here is some information I'm looking through: How to make sure you don't get WCF Faulted State Exception? http://stackoverflow.com/questions/530731/how-to-make-sure-you-dont-get-wcf- faulted-state-exception Avoiding Problems with the Using Statement http://msdn.microsoft.com/en-us/library/aa355056.aspx I will inform you on my further progress (if any). Thank you for your help. -- Shamil P.S. I haven't been "fighting" with this issue all the working day through, I was already in swimming pool with my kid etc. - yet this issue is one of the representative cases what make software development so "heavy" sometimes - the best/quickest solutions for such issues seems to be clean reinstalls of the systems, and having just latest release versions of MS software on that systems: still have to find time/resources to prepare something like that - this current case could be the "last drop"... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Monday, August 31, 2009 1:57 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I'd be very grateful if anybody could go through the following sample/workthrough using VS2008 SP1 "How to Consume a Web Service" http://johnwsaundersiii.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c= BlogPart&partqs=amonth%3d5%26ayear%3d2009 (watch line wraps) and publish for download/send me privately the sources you'll get. I can't get this sample working on my system (something is still wrong with my system setup), and I wanted to compare your sources with the ones I'm getting here to find out how to solve this "nightmarish" issue. If all will work well it should take several minutes to make the sample working on your system assuming you have VS2008 SP1 and Windows SDK installed. Please do not try to look for workarounds if the above sample will not work out of the box as described - looking for such workaround can take hours and hours (and solution depends on your system (current) context/previous setups I believe) - you'll risk to lose your working day. Solution/workaround should be simple, effective and generic - I still can't find it nor by myself nor by intensive Googling/Binging. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 1 04:34:46 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 01 Sep 2009 11:34:46 +0200 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Message-ID: Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 1 06:52:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 15:52:53 +0400 Subject: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) In-Reply-To: References: Message-ID: <00db01ca2afa$be7268c0$3b573a40$@spb.ru> Hi Gustav, No, there is no other software running on this port: I have just changed IIS based WCF web service to use 59507 port, and then changed service reference in Mike's sample to consume this my local IIS WCF web service - and everything worked OK. Yes, I will try to monitor my PC IP Ports activity but I have to postpone that as I have got now a couple of project to develop. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 01, 2009 1:35 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi Shamil I couldn't resist googling a little on this - as you probably have did - because my first thought was that you may have some other software running using that port? Did you try to telnet the port? Or you could run a port monitor like CurrPorts from http://www.nirsoft.net to view activity on your ports. /gustav >>> shamil at smsconsulting.spb.ru 01-09-2009 08:54 >>> Hi All, I made the sample WCF Service working on my PC by creating Web Application under IIS - I tested both webapp within "Default Web Site" and a separate Web Application with custom IP port. I should have done that yesterday as I did that kind of setup many times before for ASP.NET apps and .asmx web services. But yesterday was definitely a bad day here... Anyway the issue with trying to set a reference to a WCF web service within a VS2008 solution as well as trying to run this WCF web service in debug mode from within solution fails with the latter resulting in the following runtime error message: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> Effective workaround I use currently is to setup Web app within IIS pointing to my WCF web Service project folder - that works well as I noted in the beginning of this message both to set/update(refresh) a reference as well as to debug/trace. If you occasionally see somewhere information how to fix the issue with "target machine actively refusing connection" please post a note here... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 2:29 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] How to Consume a Web Service (Request for Help, not urgent) Hi All, I have finally got the following runtime error messages: <<< Unable to connect to the remote server Could not connect to http://localhost:59057/Service1.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:59057. >>> And I'm not working with any remote servers here - this is just one system I'm testing on/working with. I have tried to suppress firewall completely, I have tried to open 59057 port - no luck... The issue (they tell somewhere) could be also that this machine has several NICs - usual cable and wireless etc. Googling/Binging didn't give any clues to solve the issue effectively. I'm leaving it for now for the "better times"... I have "Pro WCF, Practical Microsoft SOA Implementation" book - I should probably read it very carefully through to understand every bit in WCF configuration and functioning... (BTW, I didn't need to read any books and almost no any docs to implement several SOAP (.asmx) ASP.NET Web Services, which work successfully in production for several years, and they work well on this my system I'm currently "struggling with very basic WCF Web Service" - it could be a bad day here also today...) Still I think that modern MS technologies are great and easy to use :) Thank you for your help. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:16:30 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:16:30 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Tue Sep 1 10:47:16 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 1 Sep 2009 19:47:16 +0400 Subject: [dba-VB] Access data across the internet In-Reply-To: References: <00c701ca2ac7$cfe48940$6fad9bc0$@spb.ru> Message-ID: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 2:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not the whole picture at all. I've always recommended classic asp, to learn some of the ins and outs of web programming. There really are three types of web programming. Server side (asp, asp.net (sort of), php, etc.). Server side code is the guts of your system. This is where all of your business logic would be, and this also determines what the end user sees. Client Side (javascript, java, VBScript, ASP.Net etc). Client side scripting is code that will manipulate the page the user has received, from their computer (so 'disconnected' from the system). The exception is ASP.Net. ASP.Net combines server side and client side with a mix of code, (automated by ASP.Net). An example would be a button click. In a VBA situation, you can write code behind the OnClick event of a button, and have that code do whatever you want. In classic asp, it can 'create' the button, even create client side code, but the asp code itself is unaware of when the button is pressed. With ASP.Net, you get an OnClick event, so it looks like it's something that runs on the server, but the reality is that ASP.Net is using client side code to interact with the server. Formatting code (HTML, Flash, etc.). How your web page looks is going to be based on the code used to display your system in a browser. HTML is it's own beast, but really not too difficult to get the hang of. I recommend playing around with classic ASP and HTML, and stay away from client side scripting initially. You can build very complex (and well running) systems with just those two. ASP.Net and/or the addition of client side scripting can make certain things easier for the user (but a little more difficult on the complexity of the code (client side scripting is notorious for being picky about browsers). ASP.Net is a VERY powerful tool, but it uses an internally constructed Client/server scripting combination. Which gives you TONS of abilities because of this, but it also comes with a lot of consequences. To learn ASP classic, it's just five root objects, with VBScripting. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Sunday, August 30, 2009 4:48 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Hi Gustav (and Shamil) I've been following this discussion with some interest. My impression of web services is that they are basically for publishing information (like a parts catalogue) which could be read and used by clients. I gather that this is not the whole picture. I've spent several hours on the web recently trying to get more information; however I have yet to stumble on a site which gives a clear explanation and/or some practical examples. Do you have any good references? Thanks, Doug Steele On Sun, Aug 30, 2009 at 2:24 PM, Gustav Brock wrote: > Hi John > > I'll have to second Shamil. When I joined an early presentation of Windows > Communication Foundation it was the first time I began understanding what > web services are about - all other info had been bits and pieces, some > working but none with the big picture. WCF is so well thought out that you > can say "this time MS got it right". > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4385 (20090831) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4386 (20090901) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From DWUTKA at Marlow.com Tue Sep 1 10:53:26 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 1 Sep 2009 10:53:26 -0500 Subject: [dba-VB] Access data across the internet In-Reply-To: <00f801ca2b1b$7c939ac0$75bad040$@spb.ru> Message-ID: There are some. The important thing is understanding that aspect of how ASP.Net works, which is why I said it's a good path to get familiar with classic asp first, before using the more powerful ASP.Net. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 10:47 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet <<< Not exactly what I was saying Shamil. >>> OK, Drew. <<< If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. >>> Yes, but how many clients' browsers do have client side scripting disabled nowadays? Very few I guess (I can be wrong) - without client side scripting so popular nowadays AJAX will not function... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, September 01, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Access data across the internet Not exactly what I was saying Shamil. You are right, the logic 'code' is (usually) on the server side, but it is useless without ASP.Net's client code (that ASP.Net implements 'behind the scenes'). In the actual webserver, internet, client browser model, there is no 'live' connection between the user's browser and the webserver. So the act of raising an event for a client side action is handled by client side scripting that ASP.Net creates. If you have a browser where client side scripting is completely disabled (or not even there in a stripped down browser), then the ASP.Net 'events' simply won't work. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Tuesday, September 01, 2009 12:48 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Access data across the internet Drew, Let me post a couple of comments? ASP.NET button's Click event's (business) logic is (most of the time/by default) located on server side, and it's executed during web page Postback. To develop rather advanced ASP.NET applications there is no need to know JavaScript at all. -- Shamil The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From shamil at smsconsulting.spb.ru Wed Sep 2 13:38:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 22:38:40 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Message-ID: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 2 14:56:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 2 Sep 2009 23:56:02 +0400 Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application In-Reply-To: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001101ca2c07$678abfe0$36a03fa0$@spb.ru> Hi All, I have just found an interesting sample related to the subject or this thread as well as on WCF services one: "GeoNames .NET WCF Client" http://www.codeproject.com/KB/WCF/GeoNames-WCFClient.aspx Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 02, 2009 10:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Map search/navigation/business objects presentation/drawing in ASP.NET application Hi All, I have a project where I was requested to implement something like the following map search/navigation http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 in an ASP.NET application. The customer is a small company, and they can't currently afford Google Maps API rates for commercial usage. Do you know any economic alternatives/third-party tools as e.g. on the referred web page? BTW, do you know what tools used for map navigation on that referred above web page? Thank you. -- Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Wed Sep 2 19:41:16 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Wed, 2 Sep 2009 20:41:16 -0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I have a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 04:53:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 3 Sep 2009 13:53:46 +0400 Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> Message-ID: <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Hi Mike, Thank you. Would that be correct assumption that using Mapstraction with OpenStreetMaps is free for commercial Web applications? And when my customer will get some "fat" it will be not that complicated to switch to GoogleMaps or other commercial GIS solution providers as Mapstraction provides good JavaScript abstraction layer? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:41 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application Hi Shamil, It is Mapstraction - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Wednesday, September 02, 2009 2:38 PM Subject: [dba-VB] Map search/navigation/business objectspresentation/drawing in ASP.NET application > Hi All, > > > > I hae a project where I was requested to implement something like the > following map search/navigation > > > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > > > > in an ASP.NET application. The customer is a small company, and they can't > currently afford Google Maps API rates for commercial usage. > > > > Do you know any economic alternatives/third-party tools as e.g. on the > referred web page? > > BTW, do you know what tools used for map navigation on that referred above > web page? > > > > Thank you. > > > > -- > > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4390 (20090902) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 07:57:53 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 08:57:53 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> Message-ID: <86C0C6779099450D9E17241C79EF23DB@Mattys> Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Thu Sep 3 15:03:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 00:03:48 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application In-Reply-To: <86C0C6779099450D9E17241C79EF23DB@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> Message-ID: <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Hi Mike, OK. If I can "GET" Mapstraction with something else open source (read "free") to implement the referred below functionality then I'd try to "GIVE" back developed here free/open source DotNetNuke (DNN) module wrapping that functionality to be reused by others - would that be a "fair exchange"? :) Maybe I should ask it that way - do you know what provider Mapstraction talks to here: http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 I mean you mentioned that the above site's map navigation is developed using Mapstraction - maybe you know also what GIS data/API provider it's used there? The only functionality, which is needed here currently is: - to show a country map with regions/states; - highlight/show tooltip of region/state on mouse move; - zoom region/state when it's clicked by mouse; - highlight sub-regions (if any). Purchasing advanced commercial GIS systems for the above functionality is looking currently excessive here (for my customer). Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Thursday, September 03, 2009 4:58 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application Shamil, I can't be quoted as an authority on this because I don't really understand "open source" in a world based upon "GET" instead of "GIVE" ... perhaps I need to attend LAW school (ha ha!) However, It appears that OSM is free but Mapstraction does not yet 'talk' with OpenStreetMaps. They are planning to do so. Then again, they seem to be asking for participation in the project ... - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 5:53 AM Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NET application > Hi Mike, > > Thank you. > > Would that be correct assumption that using Mapstraction with > OpenStreetMaps > is free for commercial Web applications? And when my customer will get > some > "fat" it will be not that complicated to switch to GoogleMaps or other > commercial GIS solution providers as Mapstraction provides good JavaScript > abstraction layer? > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:41 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Map search/navigation/business > objectspresentation/drawing in ASP.NET application > > Hi Shamil, > > It is Mapstraction > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Wednesday, September 02, 2009 2:38 PM > Subject: [dba-VB] Map search/navigation/business > objectspresentation/drawing > > in ASP.NET application > > >> Hi All, >> >> >> >> I hae a project where I was requested to implement something like the >> following map search/navigation >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >> >> >> >> in an ASP.NET application. The customer is a small company, and they >> can't >> currently afford Google Maps API rates for commercial usage. >> >> >> >> Do you know any economic alternatives/third-party tools as e.g. on the >> referred web page? >> >> BTW, do you know what tools used for map navigation on that referred >> above >> web page? >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4390 (20090902) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4392 (20090903) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Thu Sep 3 15:31:51 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 16:31:51 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From mmattys at rochester.rr.com Thu Sep 3 16:13:50 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Thu, 3 Sep 2009 17:13:50 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> >>>> _______________________________________________ >>>> dba-VB mailing list >>>> dba-VB at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>>> http://www.databaseadvisors.com >>>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature >>> database 4390 (20090902) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.esetnod32.ru >>> >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4392 (20090903) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys><004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006901ca2d22$dd1a3260$974e9720$@spb.ru> Hi Mike, Don't worry. No problem at all. Your remark is accepted here with pleasure. If you think I like open source that wouldn't be true :) But I have to accept that "open source software phenomena" as reality, and to find how to live with it with as little as possible "damage" to my own and other developers business. You know I started my development carrier when there was no yet that phenomena. Nowadays I'd probably not go into programming because of "corruption" of that profession introduced by open source. Although AFAIS the "greed" of commercial solutions' software shops together with rather low quality of many of that solutions especially in 1990-ies was one of the driving forces of the "open source software".... You convinced me - I'd try to use as little as possible open source software solutions - none will be ideal. And sharing experience as we're doing here and making sample solutions etc. - I'll continue doing that as this activity helps to learn new technologies, helps to minimize routine everyday work etc. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 1:14 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, I wasn't trying to be rude, I really don't understand the Open-Source thing. Really. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Thursday, September 03, 2009 4:31 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Shamil, > > Doesn't it simply mean that you'll put a lot of web mapping > programmers in a lower income bracket and only big companies > will benefit? > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 4:03 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > >> Hi Mike, >> >> OK. If I can "GET" Mapstraction with something else open source (read >> "free") to implement the referred below functionality then I'd try to >> "GIVE" >> back developed here free/open source DotNetNuke (DNN) module wrapping >> that >> functionality to be reused by others - would that be a "fair exchange"? >> :) >> >> Maybe I should ask it that way - do you know what provider Mapstraction >> talks to here: >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> I mean you mentioned that the above site's map navigation is developed >> using >> Mapstraction - maybe you know also what GIS data/API provider it's used >> there? >> >> The only functionality, which is needed here currently is: >> >> - to show a country map with regions/states; >> - highlight/show tooltip of region/state on mouse move; >> - zoom region/state when it's clicked by mouse; >> - highlight sub-regions (if any). >> >> Purchasing advanced commercial GIS systems for the above functionality is >> looking currently excessive here (for my customer). >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:58 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> Shamil, >> >> I can't be quoted as an authority on this because I don't really >> understand "open source" in a world based upon "GET" instead >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> However, It appears that OSM is free but Mapstraction does not yet >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> Then again, they seem to be asking for participation in the project ... >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Thursday, September 03, 2009 5:53 AM >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NET application >> >> >>> Hi Mike, >>> >>> Thank you. >>> >>> Would that be correct assumption that using Mapstraction with >>> OpenStreetMaps >>> is free for commercial Web applications? And when my customer will get >>> some >>> "fat" it will be not that complicated to switch to GoogleMaps or other >>> commercial GIS solution providers as Mapstraction provides good >>> JavaScript >>> abstraction layer? >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Thursday, September 03, 2009 4:41 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing in ASP.NET application >>> >>> Hi Shamil, >>> >>> It is Mapstraction >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Shamil Salakhetdinov" >>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>> >>> Sent: Wednesday, September 02, 2009 2:38 PM >>> Subject: [dba-VB] Map search/navigation/business >>> objectspresentation/drawing >>> >>> in ASP.NET application >>> >>> >>>> Hi All, >>>> >>>> >>>> >>>> I hae a project where I was requested to implement something like the >>>> following map search/navigation >>>> >>>> >>>> >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>>> >>>> >>>> >>>> in an ASP.NET application. The customer is a small company, and they >>>> can't >>>> currently afford Google Maps API rates for commercial usage. >>>> >>>> >>>> >>>> Do you know any economic alternatives/third-party tools as e.g. on the >>>> referred web page? >>>> >>>> BTW, do you know what tools used for map navigation on that referred >>>> above >>>> web page? >>>> >>>> >>>> >>>> Thank you. >>>> >>>> >>>> >>>> -- >>>> >>>> Shamil >>>> From shamil at smsconsulting.spb.ru Fri Sep 4 00:45:05 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 09:45:05 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru><86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> Message-ID: <006a01ca2d22$dfb21b50$9f1651f0$@spb.ru> Hi Mike, OK, I will not do that. :) I will try to find some affordable commercial (or semi-commercial) solution, I will put it into DNN Module Envelope, and I will be selling my solution online for USD99-3USD00 - usual price for advanced commercial DNN modules. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 12:32 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Shamil, Doesn't it simply mean that you'll put a lot of web mapping programmers in a lower income bracket and only big companies will benefit? - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Thursday, September 03, 2009 4:03 PM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication > Hi Mike, > > OK. If I can "GET" Mapstraction with something else open source (read > "free") to implement the referred below functionality then I'd try to > "GIVE" > back developed here free/open source DotNetNuke (DNN) module wrapping that > functionality to be reused by others - would that be a "fair exchange"? :) > > Maybe I should ask it that way - do you know what provider Mapstraction > talks to here: > > http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > > I mean you mentioned that the above site's map navigation is developed > using > Mapstraction - maybe you know also what GIS data/API provider it's used > there? > > The only functionality, which is needed here currently is: > > - to show a country map with regions/states; > - highlight/show tooltip of region/state on mouse move; > - zoom region/state when it's clicked by mouse; > - highlight sub-regions (if any). > > Purchasing advanced commercial GIS systems for the above functionality is > looking currently excessive here (for my customer). > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Thursday, September 03, 2009 4:58 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > Shamil, > > I can't be quoted as an authority on this because I don't really > understand "open source" in a world based upon "GET" instead > of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > > However, It appears that OSM is free but Mapstraction does not yet > 'talk' with OpenStreetMaps. They are planning to do so. > > Then again, they seem to be asking for participation in the project ... > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Thursday, September 03, 2009 5:53 AM > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NET application > > >> Hi Mike, >> >> Thank you. >> >> Would that be correct assumption that using Mapstraction with >> OpenStreetMaps >> is free for commercial Web applications? And when my customer will get >> some >> "fat" it will be not that complicated to switch to GoogleMaps or other >> commercial GIS solution providers as Mapstraction provides good >> JavaScript >> abstraction layer? >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Thursday, September 03, 2009 4:41 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Map search/navigation/business >> objectspresentation/drawing in ASP.NET application >> >> Hi Shamil, >> >> It is Mapstraction >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Shamil Salakhetdinov" >> To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> >> Sent: Wednesday, September 02, 2009 2:38 PM >> Subject: [dba-VB] Map search/navigation/business >> objectspresentation/drawing >> >> in ASP.NET application >> >> >>> Hi All, >>> >>> >>> >>> I hae a project where I was requested to implement something like the >>> following map search/navigation >>> >>> >>> >>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 >>> >>> >>> >>> in an ASP.NET application. The customer is a small company, and they >>> can't >>> currently afford Google Maps API rates for commercial usage. >>> >>> >>> >>> Do you know any economic alternatives/third-party tools as e.g. on the >>> referred web page? >>> >>> BTW, do you know what tools used for map navigation on that referred >>> above >>> web page? >>> >>> >>> >>> Thank you. >>> >>> >>> >>> -- >>> >>> Shamil >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature >> database 4390 (20090902) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.esetnod32.ru >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4392 (20090903) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 4 03:51:23 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 4 Sep 2009 09:51:23 +0100 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: <006901ca2d22$dd1a3260$974e9720$@spb.ru> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Fri Sep 4 04:02:19 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 13:02:19 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication In-Reply-To: References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> Message-ID: <007401ca2d3e$696242b0$3c26c810$@spb.ru> Hi Mark, Here is the info on GoogleMaps (API) usage in commercial applications - I have got it from Mike: <<< For External Applications (public facing sites or customer facing extranets) * $10,000 for 1 million page views per year * $20,000 for 2 million page views per year * $30,000 for 3 million page views per year * $40,000 for 5 million page views per year * Please call for pricing above 5 external million page views per year For Internal Applications (internal applications, non-customer facing) * $10,000 for 250K page views per year * $20,000 for 500K views per year * $30,000 for 750K page views per year * $40,000 for 1.5 million page views per year * Please call for pricing above 1.5 million internal page views per year FAQ How can I try out the Google Maps API? For development purpose you are authorized to use a Free Google Maps license key as an Enterprise License key for 30 days. This means that you are licensed to use Google Maps behind the firewall, in an internal application, or as part of paid or premium content for 30 days (e.g. the Enterprisefull licensing agreement). The 30 day free trial is still subject to a limit of 15,000 geocodes per day. To sign up for the key, please visit http://code.google.com/apis/maps/signup.html If you have already signed up for a key, please mark the date of this e-mail as the start of your 30 day free trial. >>> AFAIS GoogleMaps is not free - and if used from available on SnowCovered DNN modules one have to pay for both - a DNN module license and Google Maps API usage. Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen Sent: Friday, September 04, 2009 12:51 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawing inASP.NETapplication Hello Shamil and Mike, Shamil, perhaps I am missing something here, but I would have assumed that you are free to use Google Maps for your application. Why can you not? Of did I miss something that you need a wrapper for Google maps? When I searched on SnowCovered I see plenty of Google Map providers, so I guess you must be looking for something else? thanks Mark 2009/9/4 Shamil Salakhetdinov > Hi Mike, > > Don't worry. > No problem at all. > Your remark is accepted here with pleasure. > If you think I like open source that wouldn't be true :) > But I have to accept that "open source software phenomena" as reality, and > to find how to live with it with as little as possible "damage" to my own > and other developers business. You know I started my development carrier > when there was no yet that phenomena. Nowadays I'd probably not go into > programming because of "corruption" of that profession introduced by open > source. Although AFAIS the "greed" of commercial solutions' software shops > together with rather low quality of many of that solutions especially in > 1990-ies was one of the driving forces of the "open source software".... > > You convinced me - I'd try to use as little as possible open source > software > solutions - none will be ideal. > > And sharing experience as we're doing here and making sample solutions etc. > - I'll continue doing that as this activity helps to learn new > technologies, > helps to minimize routine everyday work etc. > > Thank you. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > Sent: Friday, September 04, 2009 1:14 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Shamil, > > I wasn't trying to be rude, I really don't understand > the Open-Source thing. > > Really. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > ----- Original Message ----- > From: "Mike Mattys" > To: "Discussion concerning Visual Basic and related programming issues." > > Sent: Thursday, September 03, 2009 4:31 PM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > > > Shamil, > > > > Doesn't it simply mean that you'll put a lot of web mapping > > programmers in a lower income bracket and only big companies > > will benefit? > > > > - > > Michael R Mattys > > MapPoint and Database Dev > > www.mattysconsulting.com > > - > > ----- Original Message ----- > > From: "Shamil Salakhetdinov" > > To: "'Discussion concerning Visual Basic and related programming > issues.'" > > > > Sent: Thursday, September 03, 2009 4:03 PM > > Subject: Re: [dba-VB]Mapsearch/navigation/business > > objectspresentation/drawing inASP.NETapplication > > > > > >> Hi Mike, > >> > >> OK. If I can "GET" Mapstraction with something else open source (read > >> "free") to implement the referred below functionality then I'd try to > >> "GIVE" > >> back developed here free/open source DotNetNuke (DNN) module wrapping > >> that > >> functionality to be reused by others - would that be a "fair exchange"? > >> :) > >> > >> Maybe I should ask it that way - do you know what provider Mapstraction > >> talks to here: > >> > >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 > >> > >> I mean you mentioned that the above site's map navigation is developed > >> using > >> Mapstraction - maybe you know also what GIS data/API provider it's used > >> there? > >> > >> The only functionality, which is needed here currently is: > >> > >> - to show a country map with regions/states; > >> - highlight/show tooltip of region/state on mouse move; > >> - zoom region/state when it's clicked by mouse; > >> - highlight sub-regions (if any). > >> > >> Purchasing advanced commercial GIS systems for the above functionality > is > >> looking currently excessive here (for my customer). > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> -----Original Message----- > >> From: dba-vb-bounces at databaseadvisors.com > >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >> Sent: Thursday, September 03, 2009 4:58 PM > >> To: Discussion concerning Visual Basic and related programming issues. > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> Shamil, > >> > >> I can't be quoted as an authority on this because I don't really > >> understand "open source" in a world based upon "GET" instead > >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) > >> > >> However, It appears that OSM is free but Mapstraction does not yet > >> 'talk' with OpenStreetMaps. They are planning to do so. > >> > >> Then again, they seem to be asking for participation in the project ... > >> > >> - > >> Michael R Mattys > >> MapPoint and Database Dev > >> www.mattysconsulting.com > >> - > >> ----- Original Message ----- > >> From: "Shamil Salakhetdinov" > >> To: "'Discussion concerning Visual Basic and related programming > >> issues.'" > >> > >> Sent: Thursday, September 03, 2009 5:53 AM > >> Subject: Re: [dba-VB] Mapsearch/navigation/business > >> objectspresentation/drawing inASP.NET application > >> > >> > >>> Hi Mike, > >>> > >>> Thank you. > >>> > >>> Would that be correct assumption that using Mapstraction with > >>> OpenStreetMaps > >>> is free for commercial Web applications? And when my customer will get > >>> some > >>> "fat" it will be not that complicated to switch to GoogleMaps or other > >>> commercial GIS solution providers as Mapstraction provides good > >>> JavaScript > >>> abstraction layer? > >>> > >>> Thank you. > >>> > >>> -- > >>> Shamil > >>> > >>> -----Original Message----- > >>> From: dba-vb-bounces at databaseadvisors.com > >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys > >>> Sent: Thursday, September 03, 2009 4:41 AM > >>> To: Discussion concerning Visual Basic and related programming issues. > >>> Subject: Re: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing in ASP.NET application > >>> > >>> Hi Shamil, > >>> > >>> It is Mapstraction > >>> > >>> - > >>> Michael R Mattys > >>> MapPoint and Database Dev > >>> www.mattysconsulting.com > >>> - > >>> ----- Original Message ----- > >>> From: "Shamil Salakhetdinov" > >>> To: "'Discussion concerning Visual Basic and related programming > >>> issues.'" > >>> > >>> Sent: Wednesday, September 02, 2009 2:38 PM > >>> Subject: [dba-VB] Map search/navigation/business > >>> objectspresentation/drawing > >>> > >>> in ASP.NET application > >>> > >>> > >>>> Hi All, > >>>> > >>>> > >>>> > >>>> I hae a project where I was requested to implement something like the > >>>> following map search/navigation > >>>> > >>>> > >>>> > >>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=34 > >>>> > >>>> > >>>> > >>>> in an ASP.NET application. The customer is a small company, and they > >>>> can't > >>>> currently afford Google Maps API rates for commercial usage. > >>>> > >>>> > >>>> > >>>> Do you know any economic alternatives/third-party tools as e.g. on the > >>>> referred web page? > >>>> > >>>> BTW, do you know what tools used for map navigation on that referred > >>>> above > >>>> web page? > >>>> > >>>> > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Shamil > >>>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4393 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 08:41:26 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 09:41:26 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> Message-ID: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com From jwcolby at colbyconsulting.com Fri Sep 4 09:35:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 10:35:29 -0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <4AA125B1.3000702@colbyconsulting.com> That is a rather steep fee schedule however. I find the fee difference interesting as well. Significantly more expensive for corporate usage than public. John W. Colby www.ColbyConsulting.com Mike Mattys wrote: > To be sure, Google is operating exactly as it should in this world > according to all that is taught in the 'best' ivy league business colleges > and the 'wisdom' of all financial programs on television. > > No one understands the consequences down the road. > > One doesn't observe the pharmaceutical companies adopting an open > source philosophy, either. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 5:02 AM > Subject: Re: [dba-VB]Mapsearch/navigation/business > objectspresentation/drawinginASP.NETapplication > > >> Hi Mark, >> >> Here is the info on GoogleMaps (API) usage in commercial applications - I >> have got it from Mike: >> >> <<< >> For External Applications (public facing sites or customer facing >> extranets) >> * $10,000 for 1 million page views per year >> * $20,000 for 2 million page views per year >> * $30,000 for 3 million page views per year >> * $40,000 for 5 million page views per year >> * Please call for pricing above 5 external million page views per year >> >> For Internal Applications (internal applications, non-customer facing) >> * $10,000 for 250K page views per year >> * $20,000 for 500K views per year >> * $30,000 for 750K page views per year >> * $40,000 for 1.5 million page views per year >> * Please call for pricing above 1.5 million internal page views per year >> >> FAQ >> How can I try out the Google Maps API? >> For development purpose you are authorized to use a Free Google Maps >> license key as an Enterprise License key for 30 days. This means that >> you are licensed to use Google Maps behind the firewall, in an >> internal application, or as part of paid or premium content for 30 >> days (e.g. the Enterprisefull licensing agreement). The 30 day free >> trial is still subject to a limit of 15,000 geocodes per day. >> >> To sign up for the key, please visit >> http://code.google.com/apis/maps/signup.html >> If you have already >> signed up for a key, please mark the date of this e-mail as the start >> of your 30 day free trial. >> AFAIS GoogleMaps is not free - and if used from available on SnowCovered >> DNN >> modules one have to pay for both - a DNN module license and Google Maps >> API >> usage. >> >> Correct? >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen >> Sent: Friday, September 04, 2009 12:51 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Hello Shamil and Mike, >> Shamil, perhaps I am missing something here, but I would have assumed that >> you are free to use Google Maps for your application. Why can you not? >> Of >> did I miss something that you need a wrapper for Google maps? >> >> When I searched on SnowCovered I see plenty of Google Map providers, so I >> guess you must be looking for something else? >> >> thanks >> >> Mark >> >> >> >> 2009/9/4 Shamil Salakhetdinov >> >>> Hi Mike, >>> >>> Don't worry. >>> No problem at all. >>> Your remark is accepted here with pleasure. >>> If you think I like open source that wouldn't be true :) >>> But I have to accept that "open source software phenomena" as reality, >>> and >>> to find how to live with it with as little as possible "damage" to my own >>> and other developers business. You know I started my development carrier >>> when there was no yet that phenomena. Nowadays I'd probably not go into >>> programming because of "corruption" of that profession introduced by open >>> source. Although AFAIS the "greed" of commercial solutions' software >>> shops >>> together with rather low quality of many of that solutions especially in >>> 1990-ies was one of the driving forces of the "open source software".... >>> >>> You convinced me - I'd try to use as little as possible open source >>> software >>> solutions - none will be ideal. >>> >>> And sharing experience as we're doing here and making sample solutions >> etc. >>> - I'll continue doing that as this activity helps to learn new >>> technologies, >>> helps to minimize routine everyday work etc. >>> >>> Thank you. >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>> Sent: Friday, September 04, 2009 1:14 AM >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> Shamil, >>> >>> I wasn't trying to be rude, I really don't understand >>> the Open-Source thing. >>> >>> Really. >>> >>> - >>> Michael R Mattys >>> MapPoint and Database Dev >>> www.mattysconsulting.com >>> - >>> ----- Original Message ----- >>> From: "Mike Mattys" >>> To: "Discussion concerning Visual Basic and related programming issues." >>> >>> Sent: Thursday, September 03, 2009 4:31 PM >>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>> objectspresentation/drawing inASP.NETapplication >>> >>> >>>> Shamil, >>>> >>>> Doesn't it simply mean that you'll put a lot of web mapping >>>> programmers in a lower income bracket and only big companies >>>> will benefit? >>>> >>>> - >>>> Michael R Mattys >>>> MapPoint and Database Dev >>>> www.mattysconsulting.com >>>> - >>>> ----- Original Message ----- >>>> From: "Shamil Salakhetdinov" >>>> To: "'Discussion concerning Visual Basic and related programming >>> issues.'" >>>> >>>> Sent: Thursday, September 03, 2009 4:03 PM >>>> Subject: Re: [dba-VB]Mapsearch/navigation/business >>>> objectspresentation/drawing inASP.NETapplication >>>> >>>> >>>>> Hi Mike, >>>>> >>>>> OK. If I can "GET" Mapstraction with something else open source (read >>>>> "free") to implement the referred below functionality then I'd try to >>>>> "GIVE" >>>>> back developed here free/open source DotNetNuke (DNN) module wrapping >>>>> that >>>>> functionality to be reused by others - would that be a "fair >>>>> exchange"? >>>>> :) >>>>> >>>>> Maybe I should ask it that way - do you know what provider >>>>> Mapstraction >>>>> talks to here: >>>>> >>>>> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >>>>> >>>>> I mean you mentioned that the above site's map navigation is developed >>>>> using >>>>> Mapstraction - maybe you know also what GIS data/API provider it's >>>>> used >>>>> there? >>>>> >>>>> The only functionality, which is needed here currently is: >>>>> >>>>> - to show a country map with regions/states; >>>>> - highlight/show tooltip of region/state on mouse move; >>>>> - zoom region/state when it's clicked by mouse; >>>>> - highlight sub-regions (if any). >>>>> >>>>> Purchasing advanced commercial GIS systems for the above functionality >>> is >>>>> looking currently excessive here (for my customer). >>>>> >>>>> Thank you. >>>>> >>>>> -- >>>>> Shamil >>>>> >>>>> -----Original Message----- >>>>> From: dba-vb-bounces at databaseadvisors.com >>>>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >>>>> Sent: Thursday, September 03, 2009 4:58 PM >>>>> To: Discussion concerning Visual Basic and related programming issues. >>>>> Subject: Re: [dba-VB] Mapsearch/navigation/business >>>>> objectspresentation/drawing inASP.NET application >>>>> >>>>> Shamil, >>>>> >>>>> I can't be quoted as an authority on this because I don't really >>>>> understand "open source" in a world based upon "GET" instead >>>>> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >>>>> >>>>> However, It appears that OSM is free but Mapstraction does not yet >>>>> 'talk' with OpenStreetMaps. They are planning to do so. >>>>> >>>>> Then again, they seem to be asking for participation in the project >>>>> ... >>>>> >>>>> - >>>>> Michael R Mattys >>>>> MapPoint and Database Dev >>>>> www.mattysconsulting.com > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 4 10:07:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 04 Sep 2009 11:07:16 -0400 Subject: [dba-VB] Developing an application for sale? Message-ID: <4AA12D24.3020508@colbyconsulting.com> I found this today. http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx I am looking at starting a business with a current client to design and sell a product. In particular look at this which is a program description: http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf If you are seriously developing an application, if you are a "startup" or can become one, this program will provide you with the top end development products as well as server OS etc. I will be talking to my potential partner about this. -- John W. Colby www.ColbyConsulting.com From mmattys at rochester.rr.com Fri Sep 4 11:15:59 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 12:15:59 -0400 Subject: [dba-VB] Developing an application for sale? References: <4AA12D24.3020508@colbyconsulting.com> Message-ID: <0FCC1CA012AA479C8803DD1BB96B7F99@Mattys> Very interesting. Thanks, John - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" ; "VBA" Sent: Friday, September 04, 2009 11:07 AM Subject: [dba-VB] Developing an application for sale? >I found this today. > > http://microsoftstartupzone.com/BizSpark/Pages/At_a_Glance.aspx > > I am looking at starting a business with a current client to design and > sell a product. In > particular look at this which is a program description: > > http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf > > If you are seriously developing an application, if you are a "startup" or > can become one, this > program will provide you with the top end development products as well as > server OS etc. > > I will be talking to my potential partner about this. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Fri Sep 4 11:26:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Fri, 4 Sep 2009 20:26:00 +0400 Subject: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication In-Reply-To: <867E6814794D4F2EA21DA1D50AA3C480@Mattys> References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru> <867E6814794D4F2EA21DA1D50AA3C480@Mattys> Message-ID: <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Hi Mike, It looks like GoogleMaps API (not Premier version) can be used for free even on commercial web sites with some limitations and my customer business should fit them: <<< http://code.google.com/intl/en/apis/maps/faq.html Can I use the Google Maps API on a commercial website? As long as your site is generally accessible to consumers without charge, you may use the Google Maps API. For example, if your website is supported by advertising, it likely falls within the Google Maps API Terms of Service. If you charge people to place information on your map (e.g. to list their homes for sale), but you display this information using the Google Maps API on a free part of your site, you'll also meet the Google Maps API Terms of Service. However, not all commercial uses are allowed. If your site meets any of the following criteria you must use Google Maps API Premier: * Your site is only available to paying customers. * Your site is only accessible within your company or on your intranet. Remember, Google reserves the right to suspend or terminate your use of the Google Maps API at any time, so please ensure that you read the Terms of Service carefully. >>> Correct? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Friday, September 04, 2009 5:41 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication To be sure, Google is operating exactly as it should in this world according to all that is taught in the 'best' ivy league business colleges and the 'wisdom' of all financial programs on television. No one understands the consequences down the road. One doesn't observe the pharmaceutical companies adopting an open source philosophy, either. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 5:02 AM Subject: Re: [dba-VB]Mapsearch/navigation/business objectspresentation/drawinginASP.NETapplication > Hi Mark, > > Here is the info on GoogleMaps (API) usage in commercial applications - I > have got it from Mike: > > <<< > For External Applications (public facing sites or customer facing > extranets) > * $10,000 for 1 million page views per year > * $20,000 for 2 million page views per year > * $30,000 for 3 million page views per year > * $40,000 for 5 million page views per year > * Please call for pricing above 5 external million page views per year > > For Internal Applications (internal applications, non-customer facing) > * $10,000 for 250K page views per year > * $20,000 for 500K views per year > * $30,000 for 750K page views per year > * $40,000 for 1.5 million page views per year > * Please call for pricing above 1.5 million internal page views per year > > FAQ > How can I try out the Google Maps API? > For development purpose you are authorized to use a Free Google Maps > license key as an Enterprise License key for 30 days. This means that > you are licensed to use Google Maps behind the firewall, in an > internal application, or as part of paid or premium content for 30 > days (e.g. the Enterprisefull licensing agreement). The 30 day free > trial is still subject to a limit of 15,000 geocodes per day. > > To sign up for the key, please visit > http://code.google.com/apis/maps/signup.html > If you have already > signed up for a key, please mark the date of this e-mail as the start > of your 30 day free trial. >>>> > > AFAIS GoogleMaps is not free - and if used from available on SnowCovered > DNN > modules one have to pay for both - a DNN module license and Google Maps > API > usage. > > Correct? > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mark Breen > Sent: Friday, September 04, 2009 12:51 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Mapsearch/navigation/business > objectspresentation/drawing inASP.NETapplication > > Hello Shamil and Mike, > Shamil, perhaps I am missing something here, but I would have assumed that > you are free to use Google Maps for your application. Why can you not? > Of > did I miss something that you need a wrapper for Google maps? > > When I searched on SnowCovered I see plenty of Google Map providers, so I > guess you must be looking for something else? > > thanks > > Mark > > > > 2009/9/4 Shamil Salakhetdinov > >> Hi Mike, >> >> Don't worry. >> No problem at all. >> Your remark is accepted here with pleasure. >> If you think I like open source that wouldn't be true :) >> But I have to accept that "open source software phenomena" as reality, >> and >> to find how to live with it with as little as possible "damage" to my own >> and other developers business. You know I started my development carrier >> when there was no yet that phenomena. Nowadays I'd probably not go into >> programming because of "corruption" of that profession introduced by open >> source. Although AFAIS the "greed" of commercial solutions' software >> shops >> together with rather low quality of many of that solutions especially in >> 1990-ies was one of the driving forces of the "open source software".... >> >> You convinced me - I'd try to use as little as possible open source >> software >> solutions - none will be ideal. >> >> And sharing experience as we're doing here and making sample solutions > etc. >> - I'll continue doing that as this activity helps to learn new >> technologies, >> helps to minimize routine everyday work etc. >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> Sent: Friday, September 04, 2009 1:14 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> Shamil, >> >> I wasn't trying to be rude, I really don't understand >> the Open-Source thing. >> >> Really. >> >> - >> Michael R Mattys >> MapPoint and Database Dev >> www.mattysconsulting.com >> - >> ----- Original Message ----- >> From: "Mike Mattys" >> To: "Discussion concerning Visual Basic and related programming issues." >> >> Sent: Thursday, September 03, 2009 4:31 PM >> Subject: Re: [dba-VB]Mapsearch/navigation/business >> objectspresentation/drawing inASP.NETapplication >> >> >> > Shamil, >> > >> > Doesn't it simply mean that you'll put a lot of web mapping >> > programmers in a lower income bracket and only big companies >> > will benefit? >> > >> > - >> > Michael R Mattys >> > MapPoint and Database Dev >> > www.mattysconsulting.com >> > - >> > ----- Original Message ----- >> > From: "Shamil Salakhetdinov" >> > To: "'Discussion concerning Visual Basic and related programming >> issues.'" >> > >> > Sent: Thursday, September 03, 2009 4:03 PM >> > Subject: Re: [dba-VB]Mapsearch/navigation/business >> > objectspresentation/drawing inASP.NETapplication >> > >> > >> >> Hi Mike, >> >> >> >> OK. If I can "GET" Mapstraction with something else open source (read >> >> "free") to implement the referred below functionality then I'd try to >> >> "GIVE" >> >> back developed here free/open source DotNetNuke (DNN) module wrapping >> >> that >> >> functionality to be reused by others - would that be a "fair >> >> exchange"? >> >> :) >> >> >> >> Maybe I should ask it that way - do you know what provider >> >> Mapstraction >> >> talks to here: >> >> >> >> http://www.holidaylettings.co.uk/search_easy.asp#loc_country=26 >> >> >> >> I mean you mentioned that the above site's map navigation is developed >> >> using >> >> Mapstraction - maybe you know also what GIS data/API provider it's >> >> used >> >> there? >> >> >> >> The only functionality, which is needed here currently is: >> >> >> >> - to show a country map with regions/states; >> >> - highlight/show tooltip of region/state on mouse move; >> >> - zoom region/state when it's clicked by mouse; >> >> - highlight sub-regions (if any). >> >> >> >> Purchasing advanced commercial GIS systems for the above functionality >> is >> >> looking currently excessive here (for my customer). >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> -----Original Message----- >> >> From: dba-vb-bounces at databaseadvisors.com >> >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Mike Mattys >> >> Sent: Thursday, September 03, 2009 4:58 PM >> >> To: Discussion concerning Visual Basic and related programming issues. >> >> Subject: Re: [dba-VB] Mapsearch/navigation/business >> >> objectspresentation/drawing inASP.NET application >> >> >> >> Shamil, >> >> >> >> I can't be quoted as an authority on this because I don't really >> >> understand "open source" in a world based upon "GET" instead >> >> of "GIVE" ... perhaps I need to attend LAW school (ha ha!) >> >> >> >> However, It appears that OSM is free but Mapstraction does not yet >> >> 'talk' with OpenStreetMaps. They are planning to do so. >> >> >> >> Then again, they seem to be asking for participation in the project >> >> ... >> >> >> >> - >> >> Michael R Mattys >> >> MapPoint and Database Dev >> >> www.mattysconsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4396 (20090904) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From mmattys at rochester.rr.com Fri Sep 4 15:38:56 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:38:56 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys> <007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: Shamil, I think that as long as you're not charging by some measure of transactions and the site is publicly available that you'll be able to duplicate the site you showed us without being terminated by Google. It would be best to check with them, of course. If I can be of more assistance, please let me know. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Shamil Salakhetdinov" To: "'Discussion concerning Visual Basic and related programming issues.'" Sent: Friday, September 04, 2009 12:26 PM Subject: Re: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Hi Mike, > > It looks like GoogleMaps API (not Premier version) can be used for free > even > on commercial web sites with some limitations and my customer business > should fit them: > > <<< > http://code.google.com/intl/en/apis/maps/faq.html > > Can I use the Google Maps API on a commercial website? > > As long as your site is generally accessible to consumers without > charge, you may use the Google Maps API. For example, if your website is > supported by advertising, it likely falls within the Google Maps API Terms > of Service. If you charge people to place information on your map (e.g. to > list their homes for sale), but you display this information using the > Google Maps API on a free part of your site, you'll also meet the Google > Maps API Terms of Service. > > However, not all commercial uses are allowed. If your site meets any of > the following criteria you must use Google Maps API Premier: > > * Your site is only available to paying customers. > * Your site is only accessible within your company or on your > intranet. > > Remember, Google reserves the right to suspend or terminate your use of > the Google Maps API at any time, so please ensure that you read the Terms > of > Service carefully. >>>> > > Correct? > > Thank you. > > -- > Shamil From mmattys at rochester.rr.com Fri Sep 4 15:54:54 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Fri, 4 Sep 2009 16:54:54 -0400 Subject: [dba-VB] Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication References: <000001ca2bfc$98c01ac0$ca405040$@spb.ru> <001e01ca2c7c$6f151560$4d3f4020$@spb.ru> <86C0C6779099450D9E17241C79EF23DB@Mattys> <004901ca2cd1$a8ace2d0$fa06a870$@spb.ru> <006901ca2d22$dd1a3260$974e9720$@spb.ru> <007401ca2d3e$696242b0$3c26c810$@spb.ru><867E6814794D4F2EA21DA1D50AA3C480@Mattys><007f01ca2d7c$64f0fcb0$2ed2f610$@spb.ru> Message-ID: <670A61C34ECF434A80325BD4FF027FDA@Mattys> Shamil, A second opinion from here was: "Yeah, they're going to charge." Reasoning: If you're going to receive income from it, you're going to pay. - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Mike Mattys" To: "Discussion concerning Visual Basic and related programming issues." Sent: Friday, September 04, 2009 4:38 PM Subject: Re: [dba-VB]Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > Shamil, > > I think that as long as you're not charging by some measure > of transactions and the site is publicly available that you'll > be able to duplicate the site you showed us without being > terminated by Google. > > It would be best to check with them, of course. > If I can be of more assistance, please let me know. > > - > Michael R Mattys > MapPoint and Database Dev > www.mattysconsulting.com > - > > ----- Original Message ----- > From: "Shamil Salakhetdinov" > To: "'Discussion concerning Visual Basic and related programming issues.'" > > Sent: Friday, September 04, 2009 12:26 PM > Subject: Re: [dba-VB] > Mapsearch/navigation/businessobjectspresentation/drawinginASP.NETapplication > > >> Hi Mike, >> >> It looks like GoogleMaps API (not Premier version) can be used for free >> even >> on commercial web sites with some limitations and my customer business >> should fit them: >> >> <<< >> http://code.google.com/intl/en/apis/maps/faq.html >> >> Can I use the Google Maps API on a commercial website? >> >> As long as your site is generally accessible to consumers without >> charge, you may use the Google Maps API. For example, if your website is >> supported by advertising, it likely falls within the Google Maps API >> Terms >> of Service. If you charge people to place information on your map (e.g. >> to >> list their homes for sale), but you display this information using the >> Google Maps API on a free part of your site, you'll also meet the Google >> Maps API Terms of Service. >> >> However, not all commercial uses are allowed. If your site meets any >> of >> the following criteria you must use Google Maps API Premier: >> >> * Your site is only available to paying customers. >> * Your site is only accessible within your company or on your >> intranet. >> >> Remember, Google reserves the right to suspend or terminate your use >> of >> the Google Maps API at any time, so please ensure that you read the Terms >> of >> Service carefully. >>>>> >> >> Correct? >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Mon Sep 7 10:33:56 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 7 Sep 2009 19:33:56 +0400 Subject: [dba-VB] FYI: Learn Lean Software Development and Kanban Systems Message-ID: <001f01ca2fd0$a0f6eac0$e2e4c040$@spb.ru> Hi All, Here is a good collection of links on subject: "Learn Lean Software Development and Kanban Systems" http://johnnycoder.com/blog/2009/08/26/learn-lean-software-development-and-k anban-systems/ Thank you. -- Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 02:57:01 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 11:57:01 +0400 Subject: [dba-VB] DotNetNuke: custom forms, map navigation/geocoding, AJAX... Message-ID: <003d01ca3059$f3c46f00$db4d4d00$@spb.ru> Hi All, It looks like I have finally found advanced samples of DNN web apps - have a look: Rechercher sur carte http://www.frantsia.ru/nedvijimost/fr/ Interactive Map http://www.camposdenijar.com/ToDO/InteractiveMap/tabid/88/Default.aspx AFAIUK one of DNN generic modules used here is XMod: http://dnndev.com/Default.aspx?tabid=213 Do you know what other modules/techniques are used to develop interactive web page here: http://www.frantsia.ru/nedvijimost/fr/ Thank you. --Shamil From shamil at smsconsulting.spb.ru Tue Sep 8 03:59:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 12:59:53 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Message-ID: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Hi All, Additionally to my previous message - FYI - here are amazing DNN related stuff/development tools - amazing at least for me - I must say I have never seen something like that made using DNN: http://dnnprofessor.com/Home.aspx Enjoy! --Shamil P.S. The mentioned above stuff is not free but its price is also amazing - amazingly low IMO: From max.wanadoo at gmail.com Tue Sep 8 05:16:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 11:16:51 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 8 05:46:49 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 14:46:49 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> Message-ID: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 11:34:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 17:34:06 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <005401ca3071$acaa7390$05ff5ab0$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> Message-ID: <4aa68798.13125e0a.04fe.4f39@mx.google.com> I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 12:14:03 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 21:14:03 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa68798.13125e0a.04fe.4f39@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> Message-ID: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 12:38:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 18:38:54 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000601ca30a7$c50fa910$4f2efb30$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> Message-ID: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4404 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 13:13:18 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 22:13:18 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa696cf.13125e0a.04f7.6d61@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> Message-ID: <000c01ca30b0$0c51b860$24f52920$@spb.ru> Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 8 13:27:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 19:27:02 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <000c01ca30b0$0c51b860$24f52920$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> Message-ID: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4407 (20090908) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 8 14:12:34 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 8 Sep 2009 23:12:34 +0400 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> Message-ID: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > From max.wanadoo at gmail.com Tue Sep 8 14:24:15 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 8 Sep 2009 20:24:15 +0100 Subject: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... In-Reply-To: <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> References: <004e01ca3062$bc90e0a0$35b2a1e0$@spb.ru> <005401ca3071$acaa7390$05ff5ab0$@spb.ru> <4aa68798.13125e0a.04fe.4f39@mx.google.com> <000601ca30a7$c50fa910$4f2efb30$@spb.ru> <4aa696cf.13125e0a.04f7.6d61@mx.google.com> <000c01ca30b0$0c51b860$24f52920$@spb.ru> <4aa6a21c.111f5e0a.20e6.ffff8639@mx.google.com> <002101ca30b8$53f4fa80$fbdeef80$@spb.ru> Message-ID: <4aa6af8d.26015a0a.7fde.ffff9d5b@mx.google.com> Shamil, Thanks for all that. I am going to run this past my colleague to see if this is something we can go with at work. Thanks very much for the info. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 20:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN releases are published on CodePlex: DotNetNuke_Community_05.01.02_Install.zip http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32337# DownloadId=81682 DotNetNuke Portal's main Download Page is here: http://www.dotnetnuke.com/tabid/125/default.aspx Install instructions can be obtained here - you'll need to fill a form: http://info.dotnetnuke.com/InstallationInstructions.html (But I'd expect you can make installation without any instructions - just create an empty MS SQL 2005/2008 database before you start installation, and ASP.NET application/virtual directory with physical path pointing to unzipped setup package, and use your MS SQL database during installation not the one existing within installation package (ASP.NET internal/attached db) - it somehow didn't work for me.) Here are real life forums examples created using DNN forum module but different skins: http://www.dnndev.com/Forums/tabid/215/Default.aspx http://www.dotnetnuke.com/tabid/795/default.aspx http://www.datasprings.com/Products/ProductForums/tabid/727/language/nl-NL/D efault.aspx When you'll get your installation OK login as host/dnnhost, remove all the default modules from the home page and add Forum module. Add your own discussions (via Forum module administration feature.). That's it. You can then register a new user, login and post your messages... Etc. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 10:27 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I am tempted to try it following what your saying. Can you let me have the URL that you are using for the download? Thanks Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 19:13 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, DNN 5.x (latest release - community version) I'm working with here does have a Forum module: I have just added this module to a test page - and voila' I can create discussions groups and forums - just to test I have added Access-D discussion to the default (General) forum, then added (posted) a couple of posts and replies - all worked flawlessly. And I didn't read any docs about setting forums and discussions using DNN. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 9:39 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... All I wanted to do was to set up a simple web site WITH a Forum. The sample sites showed all this but when I signed up, it was all extra - a lot extra. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 18:14 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, You can try latest release DNN 5.x - it's better I suppose. But if you wanted to imitate sample sites you might need to purchase some commercial modules - XMod Pro first of all... <<< Can you send you 8 year son over... >>> Well, we can come together :) But first of all he wanted to visit LEGO Land near Copenhagen... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 8:34 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... I cannot recall now. I signed up, downloaded and then tried to imitate the SAMPLE sites. Just couldn't do it. Gave up. Can you send you 8 year son over - clearly more clever than I (not hard to do, I must admit) Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: 08 September 2009 11:47 To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Max, What DNN version do you mean? The current 5.x version has a lot of new capabilities as far as I see. It installs smoothly both locally and on ASP.NET hosting. Moving local installation to ASP.NET hosting is a breeze. Installing new modules - my 8 years old kid can do that. Installing new skins - works quick and smoothly. Installing language packs - works quick and smoothly. Making new custom pages from existing modules - click, type a few chars for menu entry, click, type a few chars... But: Developing advanced custom DNN 5.x modules - easy to make a "seed" from advanced VS2008 template but then one without DNN experience gets stuck (as I did get yesterday) - IOW developing advanced custom DNN 5.x modules without rich DNN (and JavaScript/CSS/HTML) development experience is a complicated task with a very long learning curve... Developing advanced custom DNN 5.x web forms is as complicated as developing DNN 5.x modules but with XMod 5.5 and XMod Pro this task looks significantly less complicated. Developing DNN 5.x skins - is a complicated activity but there are a lot not that expensive commercial skins to purchase and tune. -- Recap: DNN 5.x development using commercial modules as XMod and commercial skins looks here currently challenging but doable. -- I will keep you Max and all you guys here informed how I will proceed. I do hope to succeed in my DNN learning curve/development endeavor. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 08, 2009 2:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] FYI: Amazing DotNetNuke (DNN) web site/modules/add-ons... Hi Shamil, I struggled so much with DNN and with the poor support that I personally received that I gave up in the end and cancelled - they refunded with question so that part of it was ok. I have to say though, that the advertising blurb led me to believe that it was very simple to create websites using DNN and certainly the ones they showed were just what I wanted. Howerver, these were one with fully paid up (expensive) content whereas when you actually sign up you then find that you have to pay extra for these added content (wikis). Trying to create your own from scratch was far from easy and beyond my time/capabilities so I left it. Others may have more success. max On 9/8/09, Shamil Salakhetdinov wrote: > Hi All, > > > > Additionally to my previous message - FYI - here are amazing DNN related > stuff/development tools - amazing at least for me - I must say I have never > seen something like that made using DNN: > > > > http://dnnprofessor.com/Home.aspx > > > > Enjoy! > > > > --Shamil > > > > P.S. The mentioned above stuff is not free but its price is also amazing - > amazingly low IMO: > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 15 07:26:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 Sep 2009 08:26:42 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK Message-ID: <4AAF8802.7020606@colbyconsulting.com> I ran across this today. I use Sync Toy to synchronize directories for various purposes - photos between the server and my laptop, backup files between the backup directory and an external drive etc. It seems that Sync Toy is a pretty face over a sync framework, which you can program to. http://msdn.microsoft.com/en-us/sync/bb887623.aspx http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Thu Sep 17 11:41:54 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 20:41:54 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime Message-ID: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil From cfoust at infostatsystems.com Thu Sep 17 12:01:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 17 Sep 2009 10:01:32 -0700 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Thu Sep 17 12:10:53 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:10:53 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> Message-ID: <00d101ca37b9$d1461930$73d24b90$@spb.ru> Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Thu Sep 17 12:48:35 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 17 Sep 2009 21:48:35 +0400 Subject: [dba-VB] Set value of BrowsableAttribute at runtime In-Reply-To: <00d101ca37b9$d1461930$73d24b90$@spb.ru> References: <00c501ca37b5$c7ec7090$57c551b0$@spb.ru> <00d101ca37b9$d1461930$73d24b90$@spb.ru> Message-ID: <00d201ca37bf$166501c0$432f0540$@spb.ru> Hi Charlotte and all, I have got the answer from other source that the value of BrowsableAttribute as well as of other attributes can't be set at runtime. Sorry, that was a wrong request of mine. Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:11 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Hi Charlotte, Thank you for your response. But I have to set BrowsableAttribute value at runtime using .NET Reflection I guess. Do you or somebody in your .NET developers shop know how to do that? Yes, I can translate to C# :) Thank you. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, September 17, 2009 9:02 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Set value of BrowsableAttribute at runtime Import the System.ComponentModel, then you can apply the browsableattribute _ Public Property Value() As Object Get Return _value End Get Set(ByVal Value As Object) _value = Value Call RenderValue() RaiseEvent ValueChanged(Me, EventArgs.Empty) End Set End Property You'll have to translate into C# yourself! LOL Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Thursday, September 17, 2009 9:42 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] Set value of BrowsableAttribute at runtime Hi All, I wanted to set a value of BrowsableAttribute at runtime: public class MyClass { [Browsable(true)] public int P1 { get; set } ... } I can't find a way how to do that. Any hints, tips and tricks would be greatly appreciated here. Thank you. --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4434 (20090917) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From marklbreen at gmail.com Fri Sep 18 17:52:09 2009 From: marklbreen at gmail.com (Mark Breen) Date: Fri, 18 Sep 2009 23:52:09 +0100 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: <4AAF8802.7020606@colbyconsulting.com> References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: Hello John, FYI, since you prompted me a year or two ago to ensure I was backing up my home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in beta for over a year. I find it works perfect for me and I used it to keep my main pc synced to a external usb drive. I sync about 50 GB of files and all is fine. I am looking forward to clicking your links below., thanks Mark 2009/9/15 jwcolby > I ran across this today. I use Sync Toy to synchronize directories for > various purposes - photos > between the server and my laptop, backup files between the backup directory > and an external drive > etc. It seems that Sync Toy is a pretty face over a sync framework, which > you can program to. > > http://msdn.microsoft.com/en-us/sync/bb887623.aspx > > http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx > > http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx > > http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Fri Sep 18 19:29:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 18 Sep 2009 20:29:08 -0400 Subject: [dba-VB] Sync Toy - File Sync SDK In-Reply-To: References: <4AAF8802.7020606@colbyconsulting.com> Message-ID: <4AB425D4.8020108@colbyconsulting.com> Mark, In fact I think 2.0 is now released. I am using it as well to sync a local directory to an external hard drive. It does work really well. The links are for programming with the Sync framework, the same thing that MS used to build SyncToy, but from inside of your C# or VB.net apps. John W. Colby www.ColbyConsulting.com Mark Breen wrote: > Hello John, > FYI, since you prompted me a year or two ago to ensure I was backing up my > home pc, I started playing SyncToy. I used the 2.0 Beta, which has been in > beta for over a year. I find it works perfect for me and I used it to keep > my main pc synced to a external usb drive. I sync about 50 GB of files and > all is fine. > > I am looking forward to clicking your links below., > > thanks > > Mark > > > 2009/9/15 jwcolby > >> I ran across this today. I use Sync Toy to synchronize directories for >> various purposes - photos >> between the server and my laptop, backup files between the backup directory >> and an external drive >> etc. It seems that Sync Toy is a pretty face over a sync framework, which >> you can program to. >> >> http://msdn.microsoft.com/en-us/sync/bb887623.aspx >> >> http://blogs.msdn.com/sync/archive/2009/01/26/new-file-sync-provider-webcast.aspx >> >> http://blogs.msdn.com/sync/archive/2009/06/04/announcing-sync-framework-2-0-ctp2.aspx >> >> http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Sat Sep 19 13:43:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 14:43:48 -0400 Subject: [dba-VB] c# - Monitor folder and run application Message-ID: <4AB52664.7060504@colbyconsulting.com> Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com From max.wanadoo at gmail.com Sat Sep 19 13:51:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 19 Sep 2009 19:51:23 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> JC, no code to hand, but as you say this is dead easy if run from a form. Set the Timer to the frequency. With the InTimer() Do a dir() to see if its there. End of heartache Waiting for my Lottery numbers to come up... Have you any code for that..I will swap... Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 19 September 2009 19:44 To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Sep 19 14:16:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 15:16:53 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> References: <4AB52664.7060504@colbyconsulting.com> <4ab52856.1818d00a.419b.ffffb1fc@mx.google.com> Message-ID: <4AB52E25.2010705@colbyconsulting.com> I looked at the monitor piece awhile back and it turns out there is an object in .Net that does the monitor for you. It even generates an event for new items in the dir IIRC. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, no code to hand, but as you say this is dead easy if run from a form. > Set the Timer to the frequency. > > With the InTimer() > Do a dir() to see if its there. > End of heartache > > Waiting for my Lottery numbers to come up... > > Have you any code for that..I will swap... > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 19 September 2009 19:44 > To: VBA > Subject: [dba-VB] c# - Monitor folder and run application > > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to > complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a > single solution. > > This doesn't appear too tough given all the code snipits out there but why > reinvent the wheel if you > have done it. > From stuart at lexacorp.com.pg Sat Sep 19 17:14:56 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 20 Sep 2009 08:14:56 +1000 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4AB557E0.16460.E42B361@stuart.lexacorp.com.pg> You should use the WaitForSingleObject API call. I've got several examples in PowerBasic and VBA. which do things like monitor your browser cache and detect when cookies are added/changed but not in .Net. I'd guess that googling that call should turn up suitable examples in c#. -- Stuart On 19 Sep 2009 at 14:43, jwcolby wrote: > Just wondering if anyone has already done this and could send me a solution. > > I need to monitor a folder and run an application if a file exists. > > I have found code that runs an app and waits a time period for it to complete, closing the app if it > doesn't complete within that time period. > > In addition to that I need the monitoring code, and all wrapped up in a single solution. > > This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you > have done it. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Sep 19 21:05:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 Sep 2009 22:05:41 -0400 Subject: [dba-VB] XML and class serialization Message-ID: <4AB58DF5.50204@colbyconsulting.com> In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com From jdthree at frontiernet.net Sun Sep 20 07:24:24 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Sun, 20 Sep 2009 08:24:24 -0400 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <001e01ca39ed$4a3e26e0$deba74a0$@net> Hello John et al, I've been away from coding for quite a while but I'm back into it again. John you're looking for the FileSystemWatcher in System.IO. I don't have any code for you but what you'll find if you Google it will get you what you need. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 2:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Sun Sep 20 09:39:32 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Sun, 20 Sep 2009 18:39:32 +0400 Subject: [dba-VB] XML and class serialization In-Reply-To: <4AB58DF5.50204@colbyconsulting.com> References: <4AB58DF5.50204@colbyconsulting.com> Message-ID: <006c01ca3a00$2ef946e0$8cebd4a0$@spb.ru> Hi John, What "HUGE overhead" do you mean? Do you mean XML file size? BTW, you can try to serialize collections' and objects' into binary http://www.java2s.com/Code/CSharp/File-Stream/CSerialization.htm and JSON http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-Data ContractJsonSerializer.aspx files/strings. As for XML processing in memory - it is very effective and is "out-of-the-.NET-box" - I suppose that in memory XML files are stored very "tightly packed" without any overheads - they (I guess) are more like hierarchical in memory databases (remember IMS?) than plain files IOW in memory XML processing using XPATH etc. could(/should?) work quicker than SQL processing of loaded in memory relational databases... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, September 20, 2009 6:06 AM To: Access Developers discussion and problem solving; VBA Subject: [dba-VB] XML and class serialization In another look at the uses of XML, many moons ago when I was trying to learn VB.Net, I wrote some stuff which used classes to store data. I am going to generalize here since I only vaguely remember what I did. Please pardon me if I use terms wrongly, and jump right in with the correct terminology. IIRC... A class can inherit the serializer interface which allows the controlling class to call a method of the data class and tell it to "serialize" itself to an XML file or to load itself from an XML file (actually a stream IIRC). This was really quite cool stuff in a way since you could enter data into a form, store the data into a class instance, enter more data into a form, store that in another class instance, storing all of these instances in a collection. Then you could write the whole thing out to a stream which ended up being an xml file on disk. Load the whole thing back out of the file on disk into the data class instances and store them in the collection. Obviously you could likewise load classes from data in a table or anywhere else you might get source data. This ended up being a quick and dirty and EASY to implement (once you learned how to do it of course) way of storing and loading data. No database file required, just XML files on disk. Now I do not want to get back into the efficiency thing, I freely admit that XML has a HUGE overhead. I am taking a course in c#. One assignment is to create a "grading program" where a form is used to enter grades. Three types of grades, each with a different weight. Enter a bunch of grades and calculate a final grade. To make it interesting and learn how to use classes and collections in C# I am taking the grades and storing them in class instances, storing the instances in a collection. This allows me to move back and forth in the entered grades, make corrections if there is a data entry error etc. A bit beyond the scope of the assignment but more interesting. So... if I make the classes serializable, I can then store them out to an XML file and read them back again. It seems the instructor knows barely more than I do about C# so it should float her boat. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4441 (20090919) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Mon Sep 21 08:42:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 09:42:13 -0400 Subject: [dba-VB] C# get project directory Message-ID: <4AB782B5.2010306@colbyconsulting.com> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From shamil at smsconsulting.spb.ru Mon Sep 21 09:28:46 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Mon, 21 Sep 2009 18:28:46 +0400 Subject: [dba-VB] C# get project directory In-Reply-To: <4AB782B5.2010306@colbyconsulting.com> References: <4AB782B5.2010306@colbyconsulting.com> Message-ID: <009c01ca3ac7$d825a890$8870f9b0$@spb.ru> Hi John, Will that work for you?: string appFullPath = Application.ExecutablePath; string appFolder = System.IO.Path.GetDirectoryName(appFullPath); System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(appFolder); Console.WriteLine(folder.Parent.Parent.Parent.FullName); BTW, if you're planning to have your (sample) application easily deployed using XCOPY then it's better to not use the above approach as it assumes that your executable will have "some useful stuff" three levels up in the directory tree - you'd better use assumption that your app has "some useful stuff" in predefined (sub-)...sub-directories relative to the executable's directory. I usually create a \Bin folder under solution's folder - that will be E:\C# Projects\Grade Calculator\Bin for your case and I set both Debug and Release mode executables built in this folder (Solutions Explorer->Project->Right-Click->Properties->Build->Output Path). Then all "useful stuff" can be placed in custom \Bin folder (E:\C# Projects\Grade Calculator\Bin) and its subfolders, and XCOPY deployment will always work OK. I'd also note that you use Application object to get exe fullpath - that works by default for WinForms apps but is unavailable in console and other types of apps by default: yes, you can set a reference to System.Windows.Forms in console application but that would be an overkill - I usually use this function: public static string ExecutingAssemblyFullPath { get { Assembly asm = Assembly.GetExecutingAssembly(); AssemblyName origCodebase = asm.GetName(false); string codeBase = origCodebase.CodeBase; if (codeBase.StartsWith(@"file:///") || codeBase.StartsWith(@"file:\\\")) codeBase = codeBase.Substring(8); return codeBase; } } I have got made it quite some time ago, and it always work well, although there could be even better/shorter solution now... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 5:42 PM To: VBA Subject: [dba-VB] C# get project directory I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4442 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4443 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Mon Sep 21 09:48:38 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 16:48:38 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Another method with strings only is a bit long winded: string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; or - applying a bit of the good old DOS syntax: string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> I want to set up a directory to store files directly under the project directory. I can get the exe directory using Application.ExecutablePath but that is clear down in the bin directory etc. I want THIS path: E:\C# Projects\Grade Calculator <<<<< I have Googled till I am blue in the face and all I end up with is (where the exe is): D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug Any help appreciated. Thanks, -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 10:02:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 11:02:27 -0400 Subject: [dba-VB] C# get project directory In-Reply-To: References: Message-ID: <4AB79583.50009@colbyconsulting.com> Gustav, I was hoping to find a property of some object that told me the solution base directory. It SEEMS SO LOGICAL. Sigh. I have every intention of creating a directory of my own to hold some files that this thing will create. I just want that directory to be portable (change with the location of the solution) and as close to the base solution path as possible. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. Thanks for this solution. It definitely should work. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Another method with strings only is a bit long winded: > > string folder = Directory.GetParent(Directory.GetParent(Path.GetDirectoryName(Application.ExecutablePath)).FullName).FullName; > > or - applying a bit of the good old DOS syntax: > > string folder = Directory.GetParent(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "..")).FullName; > > For your purpose I think too, that a parent directory should not be used, rather a subdirectory, like: > > string dataPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Data"); > > /gustav > > >>>> jwcolby at colbyconsulting.com 21-09-2009 15:42:13 >>> > I want to set up a directory to store files directly under the project directory. I can get the exe > directory using Application.ExecutablePath but that is clear down in the bin directory etc. > > I want THIS path: > > E:\C# Projects\Grade Calculator <<<<< > > I have Googled till I am blue in the face and all I end up with is (where the exe is): > > D:\C# Project\Grade Calculator\Grade Calculator\bin\Debug > > Any help appreciated. > > Thanks, > From Gustav at cactus.dk Mon Sep 21 10:27:47 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Mon, 21 Sep 2009 17:27:47 +0200 Subject: [dba-VB] C# get project directory Message-ID: Hi John Oh, you get used to it. It has the advantage(?) too, that when you switch VS from Debug mode to Release mode, your app path follows. /gustav >>> jwcolby at colbyconsulting.com 21-09-2009 17:02:27 >>> .. If you are using Explorer to go find the files it is annoying to be six levels down from the solution base. From jwcolby at colbyconsulting.com Mon Sep 21 12:46:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 13:46:08 -0400 Subject: [dba-VB] Merge rows Message-ID: <4AB7BBE0.6030807@colbyconsulting.com> My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From andy at minstersystems.co.uk Mon Sep 21 13:41:44 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 21 Sep 2009 19:41:44 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7BBE0.6030807@colbyconsulting.com> Message-ID: <44483FF525534000830F5F5010D5B73E@MINSTER> Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 14:10:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 14:10:09 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <4AB7BBE0.6030807@colbyconsulting.com> <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <893A33B2B6104479894E1266CAF81871@danwaters> I'd stick with a single preference for a car or a drink, but for women you'll need a subtable. Hope this helps! Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Monday, September 21, 2009 1:42 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Merge rows Give up the drink and the cars Andy -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From dwaters at usinternet.com Mon Sep 21 15:51:46 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 21 Sep 2009 15:51:46 -0500 Subject: [dba-VB] Merge rows In-Reply-To: <893A33B2B6104479894E1266CAF81871@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> Message-ID: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> This is a tough question - not technically difficult but what's tough is actually making the choice! I think you'll need to get some guidance from your customer as to which single record to keep (the latest one?), or should you put the contents of all the related cells into one cell and delete the other rows? Or something else? This probably doesn't help . . . Dan -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 18:46 To: db >> VBA Subject: [dba-VB] Merge rows My database from hell has some records where the records grouped by the natural PK have duplicates, and the duplicates have different information out in the non-pk fields. IOW I have two or three or 5 records for John Colby where other fields out there have various information. The first record might have my preferences in cars, whereas the second might have my preferences in drink, whereas the third might have my preferences in women (JOKING!!!). I really need to do a merge / purge to merge these records into a single remaining record. Any suggestions where to start on such an idea? -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 16:37:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:37:41 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <44483FF525534000830F5F5010D5B73E@MINSTER> References: <44483FF525534000830F5F5010D5B73E@MINSTER> Message-ID: <4AB7F225.8010703@colbyconsulting.com> ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > From max.wanadoo at gmail.com Mon Sep 21 16:39:58 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 22:39:58 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F225.8010703@colbyconsulting.com> References: <44483FF525534000830F5F5010D5B73E@MINSTER> <4AB7F225.8010703@colbyconsulting.com> Message-ID: <4ab7f2ec.0a1ad00a.5698.26d3@mx.google.com> Well that's sorted then...give up the wife! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:38 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows ROTFL. A darned fine idea. Not the things my wife would have me give up. ;) KIDDING! John W. Colby www.ColbyConsulting.com Andy Lacey wrote: > Give up the drink and the cars > > Andy > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 18:46 > To: db >> VBA > Subject: [dba-VB] Merge rows > > > My database from hell has some records where the records grouped by the > natural PK have duplicates, > and the duplicates have different information out in the non-pk fields. > > IOW I have two or three or 5 records for John Colby where other fields out > there have various > information. The first record might have my preferences in cars, whereas > the second might have my > preferences in drink, whereas the third might have my preferences in women > (JOKING!!!). > > I really need to do a merge / purge to merge these records into a single > remaining record. Any > suggestions where to start on such an idea? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 16:54:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 17:54:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> Message-ID: <4AB7F632.5020803@colbyconsulting.com> Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan From DWUTKA at Marlow.com Mon Sep 21 17:01:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 21 Sep 2009 17:01:22 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4AB52664.7060504@colbyconsulting.com> Message-ID: Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Mon Sep 21 17:04:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:04:56 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Are you saying that the FIRST JohnColby record you encounter is therefore the MASTER and the rest JohnColby record's data gets to update the MASTER? So, Rec 1. John Colby likes Fish (at the time he might have liked fish) Rec 2. John Colby does not like fish (might have been asked some time later, after a bad meal) Which takes precedence? Do you NOT overwrite existing data. Or DO you ? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 22:55 To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com Dan Waters wrote: > This is a tough question - not technically difficult but what's tough is > actually making the choice! > > I think you'll need to get some guidance from your customer as to which > single record to keep (the latest one?), or should you put the contents of > all the related cells into one cell and delete the other rows? Or something > else? > > This probably doesn't help . . . > Dan _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Sep 21 17:11:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:11:49 +0100 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: References: <4AB52664.7060504@colbyconsulting.com> Message-ID: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Sep 21 17:18:13 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 21 Sep 2009 15:18:13 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7F632.5020803@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: Merging them into one flat John Colby record is truly ugly, John. Why not separate them into a polls table (unless, of course, that's where you have them already) and use the John Colby record PK to connect them? Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, September 21, 2009 2:55 PM To: dwaters at usinternet.com; Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Dan, In fact there are 50 million records in the table (though not that many "duplicates") so there is no "making a decision". Basically I have to take row one and update it with row 2, 3, 4... Delete row 2,3,4... This is basically a table of "polls" that people have taken, with ~600 fields where there may or may not be information about doing, wanting or having that thing. Everything from information about the boat you own to the electronics you own, to the medicine you take, whether you own a dog or cat, hunt, fish etc. In order to get in the database you have to have volunteered the information somewhere along the line. But you might have taken several different polls at different times. Thus one record might have the electronics you own, another the medicine you take, and you don't even own a boat so those fields contain nothing. Like that. I just want to take all the John Colby records and merge them into a single John Colby record, deleting all the extras when I am done. Of course this is one reason for my other question about getting rid of any fields where there is no information in any record. If I am going to process 50 million records, it would be good to not have to process any fields where there is no info to merge. The other reason for the other question is that doing a table scan against 50 million records with 640 fields is just plain going to take longer than a table scan against 50 million records with only 400 fields. It comes down to a matter of disk sectors to load. And with 640 fields you cannot have indexes against all of them, so you are going to be doing table scans. I just did a test where I did a Count() where... on a non-indexed field and it took 1:18. So just doing these counts on all 640 fields could take awhile. I will be counting and logging the count in my data dictionary table. And off we go... John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 21 17:31:20 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:31:20 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> Message-ID: <4AB7FEB8.6080403@colbyconsulting.com> > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max From jwcolby at colbyconsulting.com Mon Sep 21 17:35:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 18:35:51 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> Message-ID: <4AB7FFC7.5080605@colbyconsulting.com> Well, the issue is that the client wants to do things like: Give me 5 million records where the income is in this range, has kids in this age range, has a dog and exercises. Now... You have two john colby records. The "exercises" info is in the first record, and the "has a dog" is in the second record. You just dropped John Colby from the selection because the AND failed. It would have succeeded had all the data been in one record. Essentially this table IS a Polls table. Someone just consolidated a ton of poll info into 640 fields a long time ago. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Merging them into one flat John Colby record is truly ugly, John. Why > not separate them into a polls table (unless, of course, that's where > you have them already) and use the John Colby record PK to connect them? > > Charlotte Foust > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, September 21, 2009 2:55 PM > To: dwaters at usinternet.com; Discussion concerning Visual Basic and > related programming issues. > Subject: Re: [dba-VB] Merge rows > > Dan, > > In fact there are 50 million records in the table (though not that many > "duplicates") so there is no "making a decision". Basically I have to > take row one and update it with row 2, 3, 4... Delete row 2,3,4... > > This is basically a table of "polls" that people have taken, with ~600 > fields where there may or may not be information about doing, wanting or > having that thing. Everything from information about the boat you own > to the electronics you own, to the medicine you take, whether you own a > dog or cat, hunt, fish etc. In order to get in the database you have to > have volunteered the information somewhere along the line. But you > might have taken several different polls at different times. > Thus one record might have the electronics you own, another the medicine > you take, and you don't even own a boat so those fields contain nothing. > > Like that. > > I just want to take all the John Colby records and merge them into a > single John Colby record, deleting all the extras when I am done. > > Of course this is one reason for my other question about getting rid of > any fields where there is no information in any record. If I am going > to process 50 million records, it would be good to not have to process > any fields where there is no info to merge. > > The other reason for the other question is that doing a table scan > against 50 million records with 640 fields is just plain going to take > longer than a table scan against 50 million records with only 400 > fields. It comes down to a matter of disk sectors to load. And with > 640 fields you cannot have indexes against all of them, so you are going > to be doing table scans. > > I just did a test where I did a Count() where... on a non-indexed field > and it took 1:18. So just doing these counts on all 640 fields could > take awhile. I will be counting and logging the count in my data > dictionary table. > > And off we go... > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 21 17:45:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:45:48 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FEB8.6080403@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters> <446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4ab7f8c7.1c07d00a.7499.0f28@mx.google.com> <4AB7FEB8.6080403@colbyconsulting.com> Message-ID: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Well, better brains then me will come up with the answer (are you there, Charlotte). What I would do is 1. Add an AutoNum field to the table - let that run overnight. This is good, as well you know. And you can make use of this from this point on. 2. set up the find-dupes wizard based on the natural key (!). 3. Extract the code from this. 4. put it into a module so that only those duplicate records are selected in a recordset 5. loop through the recordset. 6. do a secondary recordset based on the natural key where the autonum is not the same as the main record being looked at. 7. loop through the secondary records if found 8. update the main record. 9. delete the secondary record 10. move to next secondary record until none are left. 11. go to next main record. Now, I am not saying that is the most efficient. You may be able to do all this in an SQL statement. But, hey! At least I am trying to help. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 September 2009 23:31 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows > Do you NOT overwrite existing data. > Or DO you ? You do. Basically if there are conflicts there is no way to discover which is the right answer, and we are using the records to decide marketing stuff. You can't have two answers in the end anyway. In the end I "dedupe" (at the last step) to get rid of duplicates so ... it would be a one time dedupe or dedupe every time you use the data. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Are you saying that the FIRST JohnColby record you encounter is therefore > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > So, > Rec 1. John Colby likes Fish (at the time he might have liked fish) > Rec 2. John Colby does not like fish (might have been asked some time later, > after a bad meal) > > Which takes precedence? > > Do you NOT overwrite existing data. > Or DO you ? > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Sep 21 17:55:29 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 22 Sep 2009 08:55:29 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <4ab8025b.1c07d00a.02b5.1533@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> Message-ID: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Mon Sep 21 17:59:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 21 Sep 2009 23:59:37 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> Message-ID: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> 50 Million! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 21 September 2009 23:55 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows On the assumption that you don't really care which record you get if there are conflicts, I'd build a new table from: Select Distinct, KeyField, Max(fld2),Max(fld3).......... -- Stuart On 21 Sep 2009 at 23:45, Max Wanadoo wrote: > Well, better brains then me will come up with the answer (are you there, > Charlotte). > > What I would do is > 1. Add an AutoNum field to the table - let that run overnight. This is > good, as well you know. And you can make use of this from this point on. > 2. set up the find-dupes wizard based on the natural key (!). > 3. Extract the code from this. > 4. put it into a module so that only those duplicate records are selected in > a recordset > 5. loop through the recordset. > 6. do a secondary recordset based on the natural key where the autonum is > not the same as the main record being looked at. > 7. loop through the secondary records if found > 8. update the main record. > 9. delete the secondary record > 10. move to next secondary record until none are left. > 11. go to next main record. > > Now, I am not saying that is the most efficient. You may be able to do all > this in an SQL statement. > > But, hey! At least I am trying to help. > > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 21 September 2009 23:31 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > > Do you NOT overwrite existing data. > > Or DO you ? > > You do. Basically if there are conflicts there is no way to discover which > is the right answer, and > we are using the records to decide marketing stuff. You can't have two > answers in the end anyway. > In the end I "dedupe" (at the last step) to get rid of duplicates so ... it > would be a one time > dedupe or dedupe every time you use the data. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Are you saying that the FIRST JohnColby record you encounter is therefore > > the MASTER and the rest JohnColby record's data gets to update the MASTER? > > > > So, > > Rec 1. John Colby likes Fish (at the time he might have liked fish) > > Rec 2. John Colby does not like fish (might have been asked some time > later, > > after a bad meal) > > > > Which takes precedence? > > > > Do you NOT overwrite existing data. > > Or DO you ? > > > > Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 21 20:19:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 21 Sep 2009 21:19:08 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> Message-ID: <4AB8260C.7090402@colbyconsulting.com> Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > From shamil at smsconsulting.spb.ru Tue Sep 22 01:59:47 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 10:59:47 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8260C.7090402@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> Message-ID: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Hi John, 3.086 million records seems to be manageable to be "deduped" in one go provided the source 50 million records table is already prepared. For "deduping" you can use 1. One stored procedure which: a) will insert new individual attributes' record and b) will update not null values for existing individual attributes' record. 2. One C#/VB.NET function to get records from the source 50 million records' table and to "feed" the above stored procedure. That's a rough plan. Of course developing SP with 640 parameters and C#/VB.NET code working with that SP is not an easy manual work - that SP and code could be generated. Not sure yet here that SP can have 640 parameters therefore it may be needed to have several SPs. To get source rows a T-SQL select expression with ROW_NUMBER() function should be used to have relatively small subsets of record batches to process. This selection can be done using multi-threaded C#/VB.Net code . Do you have any index over source 50 million rows table? - ROW_NUMBER() function will need such an index (I'm talking MS SQL 2005 here, maybe in MS SQL 2008 ROW_NUMBER() can be used without any indexes)... When source data deduped into ~3.086 million records table then that "small" table can get a few the most selective columns' indexes, and probably one compound natural key clustered index built using the most selective (/the most often used in queries) columns. If there are a few such columns at least one of which is used in all the queries then your application response time should be finally measured in seconds... I hope... That's basically it. Please correct me if you suppose that the above plan can't be fulfilled because of some reasons I'm missing here. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Not 50 million, though still a lot. I just ran a query which shows 3.086 million individduals with multiple records. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > 50 Million! > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 21 September 2009 23:55 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > On the assumption that you don't really care which record you get if there > are conflicts, I'd > build a new table from: > > Select Distinct, KeyField, Max(fld2),Max(fld3).......... > __________ Information from ESET NOD32 Antivirus, version of virus signature database 4445 (20090921) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Tue Sep 22 03:09:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 22 Sep 2009 10:09:37 +0200 Subject: [dba-VB] Merge rows (now: seriously OT) Message-ID: So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... From jwcolby at colbyconsulting.com Tue Sep 22 07:13:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:13:07 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8BF53.70902@colbyconsulting.com> Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4445 (20090921) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 07:20:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 08:20:59 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> Message-ID: <4AB8C12B.2040406@colbyconsulting.com> I think you are right in most regards. Copying all of the dupes out to a new table for deduping is definitely a must. After that I think it will be a case of iterating the recordset grabbing sets of dupe records, updating, deleting the duplicates, moving on. In fact perhaps even updating out to a second table, i.e. read from one write to another. The destination table will hold the resulting deduped recordset. As I mentioned in a previous email, the string length limitation will force me to process subsets of fields at a time. I also have to log all of the records being deleted so that I can delete those records back in my original source table. At least this kind of puzzle is fun to me. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil From max.wanadoo at gmail.com Tue Sep 22 08:04:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:04:35 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8C12B.2040406@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: JC, I dont understand what strings you are manipulating...I am confused by the seemingly conflicting postings. Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a value of true/false or is the fieldname = "Fld1" and the contents "Has Dog"? Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. If the recordsource is index on key and accessed in that order, then you have only to store the previous entry and change it as the recname changes. max On 22/09/2009, jwcolby wrote: > I think you are right in most regards. Copying all of the dupes out to a > new table for deduping is > definitely a must. After that I think it will be a case of iterating the > recordset grabbing sets of > dupe records, updating, deleting the duplicates, moving on. In fact perhaps > even updating out to a > second table, i.e. read from one write to another. The destination table > will hold the resulting > deduped recordset. > > As I mentioned in a previous email, the string length limitation will force > me to process subsets of > fields at a time. > > I also have to log all of the records being deleted so that I can delete > those records back in my > original source table. > > At least this kind of puzzle is fun to me. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million >> records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working >> with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be >> needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . >> Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in >> MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that >> "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application >> response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 08:24:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 09:24:59 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> Message-ID: <4AB8D02B.8070508@colbyconsulting.com> Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 08:31:09 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 14:31:09 +0100 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: On the contrary, it looks very simple to do in code, but i dont know about creating a complex sql string like that, if it gets that complicated I just do it in code - maybe a tad slower but what the heck, do something else and just let it run. strip some records into an mdb and email me if you want. max On 22/09/2009, jwcolby wrote: > Max, > > > JC, I don't understand what strings you are manipulating... > > In order to do this you (or at least I) pretty much have to use dynamic > queries. Create a string > variable, then build up the update SQL statement. That SQL string cannot be > more than 4K long IIRC. > > Well imagine 640 fields with field names like (a real field name) > > "medication_taken_for_adhd_adderall" or > "receive_info_on_health_related_bladder_control". > > Obviously the SQL string is going to get lengthy! > > > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a > value of true/false > > Yes, generally the field contains a 'Y' or an empty string ''. In some > cases (rare) the field has > various codes or numbers. For example there is a field for income with > codes '1' through 'T' with > each one being an income band of $5K. > > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with > subsequent JCRecords as you previously indicated. > > Yes, except you can't just "overwrite it", you have to update it IF there is > data in the next record. > > Two records > > Has_Dog, Has_Cat, Boat_Length > 'Y','','' > '','','42' > > If you simply "overwrite" the first with the second then you lose the fact > that the person has a dog > because you overwrote that field in the first record with an empty string > from the second record. > > EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If > so then update the first > record with the actual data containing field from the second record. But do > NOT update the fields > where the second record does not contain data. > > It starts to look more complex eh? > > Additionally, once this "merge" is done, all the records containing "merged > data" have to be > retained. All the records which were merged in to other records have to be > deleted. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> JC, I dont understand what strings you are manipulating...I am >> confused by the seemingly conflicting postings. >> Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a >> value of true/false >> >> or is the fieldname = "Fld1" and the contents "Has Dog"? >> >> Also, if the first JCRecord is going to be the master, then just >> overwrite the contents with subsequent JCRecords as you previously >> indicated. If the recordsource is index on key and accessed in that >> order, then you have only to store the previous entry and change it as >> the recname changes. >> >> max >> >> >> On 22/09/2009, jwcolby wrote: >>> I think you are right in most regards. Copying all of the dupes out to a >>> new table for deduping is >>> definitely a must. After that I think it will be a case of iterating the >>> recordset grabbing sets of >>> dupe records, updating, deleting the duplicates, moving on. In fact >>> perhaps >>> even updating out to a >>> second table, i.e. read from one write to another. The destination table >>> will hold the resulting >>> deduped recordset. >>> >>> As I mentioned in a previous email, the string length limitation will >>> force >>> me to process subsets of >>> fields at a time. >>> >>> I also have to log all of the records being deleted so that I can delete >>> those records back in my >>> original source table. >>> >>> At least this kind of puzzle is fun to me. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Shamil Salakhetdinov wrote: >>>> Hi John, >>>> >>>> 3.086 million records seems to be manageable to be "deduped" in one go >>>> provided the source 50 million records table is already prepared. >>>> >>>> For "deduping" you can use >>>> >>>> 1. One stored procedure which: >>>> a) will insert new individual attributes' record and >>>> b) will update not null values for existing individual attributes' >>>> record. >>>> >>>> 2. One C#/VB.NET function to get records from the source 50 million >>>> records' >>>> table and to "feed" the above stored procedure. >>>> >>>> That's a rough plan. >>>> >>>> Of course developing SP with 640 parameters and C#/VB.NET code working >>>> with >>>> that SP is not an easy manual work - that SP and code could be >>>> generated. >>>> >>>> Not sure yet here that SP can have 640 parameters therefore it may be >>>> needed >>>> to have several SPs. >>>> >>>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>>> should be used to have relatively small subsets of record batches to >>>> process. This selection can be done using multi-threaded C#/VB.Net code >>>> . >>>> Do >>>> you have any index over source 50 million rows table? - ROW_NUMBER() >>>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>>> MS >>>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>>> >>>> When source data deduped into ~3.086 million records table then that >>>> "small" >>>> table can get a few the most selective columns' indexes, and probably >>>> one >>>> compound natural key clustered index built using the most selective >>>> (/the >>>> most often used in queries) columns. If there are a few such columns at >>>> least one of which is used in all the queries then your application >>>> response >>>> time should be finally measured in seconds... I hope... >>>> >>>> That's basically it. >>>> >>>> Please correct me if you suppose that the above plan can't be fulfilled >>>> because of some reasons I'm missing here. >>>> >>>> Thank you. >>>> >>>> >>>> -- >>>> Shamil >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >>> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 08:36:28 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 17:36:28 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8BF53.70902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> Message-ID: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Hi John, OK, but in proposed solution there is no need to "string together 640 fields". Or do you mean that one static(/statically compiled) T-SQL statement has some limitations? Then you can make a view with two chars length of column names. <<< the client wants to ADD more fields. >>> Well, then you can create extension table for new fields. BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query your database. I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle such a table with 640 fields. Can you publish this table structure plus say 100 records with cleaned-up or hashed name, address, phone and other personal information? Thank you. -- Shamil P.S. <<< This is truly a database from hell. >>> Yes. Some people supposes that all the computing technology is coming directly from the Hell - they promise a lot but they take even more out - your life... -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 4:13 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, One of the problems I run into is the length of the string that can be manipulated in SQL Server. There is either a 4K or 8K limit (don't remember which) but if you try to string together 640 fields with long field names (and they are loooong) you end up with an error message from SQL Server that the string is too long. This is truly a database from hell. To make matters worse, the client wants to ADD more fields. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > 3.086 million records seems to be manageable to be "deduped" in one go > provided the source 50 million records table is already prepared. > > For "deduping" you can use > > 1. One stored procedure which: > a) will insert new individual attributes' record and > b) will update not null values for existing individual attributes' > record. > > 2. One C#/VB.NET function to get records from the source 50 million records' > table and to "feed" the above stored procedure. > > That's a rough plan. > > Of course developing SP with 640 parameters and C#/VB.NET code working with > that SP is not an easy manual work - that SP and code could be generated. > > Not sure yet here that SP can have 640 parameters therefore it may be needed > to have several SPs. > > To get source rows a T-SQL select expression with ROW_NUMBER() function > should be used to have relatively small subsets of record batches to > process. This selection can be done using multi-threaded C#/VB.Net code . Do > you have any index over source 50 million rows table? - ROW_NUMBER() > function will need such an index (I'm talking MS SQL 2005 here, maybe in MS > SQL 2008 ROW_NUMBER() can be used without any indexes)... > > When source data deduped into ~3.086 million records table then that "small" > table can get a few the most selective columns' indexes, and probably one > compound natural key clustered index built using the most selective (/the > most often used in queries) columns. If there are a few such columns at > least one of which is used in all the queries then your application response > time should be finally measured in seconds... I hope... > > That's basically it. > > Please correct me if you suppose that the above plan can't be fulfilled > because of some reasons I'm missing here. > > Thank you. > > > -- > Shamil > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 5:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Not 50 million, though still a lot. I just ran a query which shows 3.086 > million individduals with > multiple records. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> 50 Million! >> >> Max >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan >> Sent: 21 September 2009 23:55 >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> On the assumption that you don't really care which record you get if there >> are conflicts, I'd >> build a new table from: >> >> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >> > From drawbridgej at sympatico.ca Tue Sep 22 08:57:50 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 09:57:50 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB7FFC7.5080605@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: John, For clarity, how do you identify a specific John Colby? OK so may be there is only 1 John Colby, but how would you distinguish (and with what certainty) to Tom Smith's for example. Is there some defined population of individuals that get polled and repolled? Jack From jwcolby at colbyconsulting.com Tue Sep 22 09:00:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:00:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> Message-ID: <4AB8D871.6060001@colbyconsulting.com> Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 09:10:29 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:10:29 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8D02B.8070508@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> Message-ID: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Hi John, I suppose you can use static (compiled) SP - I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Procedure MySP ( @firstName nvarchar(50), @lastName nvarchar(50), --- @f1 int, ... @fn nvarchar(80) ) set nocount on declare @testCount int select @testCount = count(*) from MyTable where FirstName = @firstName and LastName = @lastName if (@testCount = 0) begin -- insert End else begin update myTable set f1 = IsNull(@f1, f1), ... fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end where FirstName = @firstName and LastName = @lastName end set nocount off Try. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 5:25 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows Max, > JC, I don't understand what strings you are manipulating... In order to do this you (or at least I) pretty much have to use dynamic queries. Create a string variable, then build up the update SQL statement. That SQL string cannot be more than 4K long IIRC. Well imagine 640 fields with field names like (a real field name) "medication_taken_for_adhd_adderall" or "receive_info_on_health_related_bladder_control". Obviously the SQL string is going to get lengthy! > Do your fieldname indicate the contents, ie Fldname = "Has Dog" with a value of true/false Yes, generally the field contains a 'Y' or an empty string ''. In some cases (rare) the field has various codes or numbers. For example there is a field for income with codes '1' through 'T' with each one being an income band of $5K. > Also, if the first JCRecord is going to be the master, then just overwrite the contents with subsequent JCRecords as you previously indicated. Yes, except you can't just "overwrite it", you have to update it IF there is data in the next record. Two records Has_Dog, Has_Cat, Boat_Length 'Y','','' '','','42' If you simply "overwrite" the first with the second then you lose the fact that the person has a dog because you overwrote that field in the first record with an empty string from the second record. EVERY FIELD of EVERY RECORD has to be analyzed to see if there is data. If so then update the first record with the actual data containing field from the second record. But do NOT update the fields where the second record does not contain data. It starts to look more complex eh? Additionally, once this "merge" is done, all the records containing "merged data" have to be retained. All the records which were merged in to other records have to be deleted. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC, I dont understand what strings you are manipulating...I am > confused by the seemingly conflicting postings. > Do you fieldname indicte the contents, ie Fldname = "Has Dog" with a > value of true/false > > or is the fieldname = "Fld1" and the contents "Has Dog"? > > Also, if the first JCRecord is going to be the master, then just > overwrite the contents with subsequent JCRecords as you previously > indicated. If the recordsource is index on key and accessed in that > order, then you have only to store the previous entry and change it as > the recname changes. > > max > > > On 22/09/2009, jwcolby wrote: >> I think you are right in most regards. Copying all of the dupes out to a >> new table for deduping is >> definitely a must. After that I think it will be a case of iterating the >> recordset grabbing sets of >> dupe records, updating, deleting the duplicates, moving on. In fact perhaps >> even updating out to a >> second table, i.e. read from one write to another. The destination table >> will hold the resulting >> deduped recordset. >> >> As I mentioned in a previous email, the string length limitation will force >> me to process subsets of >> fields at a time. >> >> I also have to log all of the records being deleted so that I can delete >> those records back in my >> original source table. >> >> At least this kind of puzzle is fun to me. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> Hi John, >>> >>> 3.086 million records seems to be manageable to be "deduped" in one go >>> provided the source 50 million records table is already prepared. >>> >>> For "deduping" you can use >>> >>> 1. One stored procedure which: >>> a) will insert new individual attributes' record and >>> b) will update not null values for existing individual attributes' >>> record. >>> >>> 2. One C#/VB.NET function to get records from the source 50 million >>> records' >>> table and to "feed" the above stored procedure. >>> >>> That's a rough plan. >>> >>> Of course developing SP with 640 parameters and C#/VB.NET code working >>> with >>> that SP is not an easy manual work - that SP and code could be generated. >>> >>> Not sure yet here that SP can have 640 parameters therefore it may be >>> needed >>> to have several SPs. >>> >>> To get source rows a T-SQL select expression with ROW_NUMBER() function >>> should be used to have relatively small subsets of record batches to >>> process. This selection can be done using multi-threaded C#/VB.Net code . >>> Do >>> you have any index over source 50 million rows table? - ROW_NUMBER() >>> function will need such an index (I'm talking MS SQL 2005 here, maybe in >>> MS >>> SQL 2008 ROW_NUMBER() can be used without any indexes)... >>> >>> When source data deduped into ~3.086 million records table then that >>> "small" >>> table can get a few the most selective columns' indexes, and probably one >>> compound natural key clustered index built using the most selective (/the >>> most often used in queries) columns. If there are a few such columns at >>> least one of which is used in all the queries then your application >>> response >>> time should be finally measured in seconds... I hope... >>> >>> That's basically it. >>> >>> Please correct me if you suppose that the above plan can't be fulfilled >>> because of some reasons I'm missing here. >>> >>> Thank you. >>> >>> >>> -- >>> Shamil From shamil at smsconsulting.spb.ru Tue Sep 22 09:17:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 18:17:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <<< you lose the data in the first. >>> John, Our postings crossed - I have posted solution for the above issue in my recent posting. <<< that there will be 50 million records >>> But you say there are "just" 3+ millions when the data are "deduped" - that should be not a big issue for the joins on your mighty computers (BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:00 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 09:21:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:21:15 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com><44483FF525534000830F5F5010D5B73E@MINSTER> <893A33B2B6104479894E1266CAF81871@danwaters><446B0B52CCB54250A2B447AAE52D7EB2@danwaters> <4AB7F632.5020803@colbyconsulting.com> <4AB7FFC7.5080605@colbyconsulting.com> Message-ID: <4AB8DD5B.2050906@colbyconsulting.com> Jack, I was leaving that out to prevent obscuring the points I wanted to discuss. In fact what happened is that I received a text file, fixed width that contained all of this data in it. The file contained 65 million records that included fields for first name, last name, address, city, state, and zip. I loaded it into a table, with an autonumber PKID. I then pulled the name / address info out into a second table and ran it through the address validation program I have discussed in the past (virtual machines etc). That process causes 15 million records to fall out as undeliverable. 50 million records remained, the records we discuss here. So I have two tables, one with PK / name / address and the second with PK / poll information data. What I actually do to group the records is in the Address table is that I created a HashPerson field, binary(250). I then ran the first/last/addr/zip5/zip4 through a hash function (in SQL Server) which returned a repeatable unique number for each such string of data input. So now I have this hash field which contains exactly the same binary representation for every record with the same first/last/addr/zip5/zip4. So I can group on the HashPerson to count duplicates, I can select on HashPerson to get the PKIDs of all the records for a single person etc. Obviously I am not effectively dealing with issues like "Jack Colby" and "John Colby" at the same address. Same person, nicknames. I have not even attempted to do such things. Nor mis-spellings, minor variations in address etc. These things DO exist, but statistically they are such a small percentage of the total, and I had so much else to deal with, that it made no sense to go there yet. Maybe some day. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > John, > > For clarity, how do you identify a specific John Colby? OK so may be there > is only 1 John Colby, but how would you distinguish (and with what > certainty) to Tom Smith's for example. > Is there some defined population of individuals that get polled and > repolled? > Jack > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 09:29:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:29:37 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <00dc01ca3b8e$72d69220$5883b660$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> Message-ID: <4AB8DF51.1050106@colbyconsulting.com> >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil From fuller.artful at gmail.com Tue Sep 22 09:42:54 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 22 Sep 2009 10:42:54 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> That's almost exactly what I would propose, JC, with perhaps a small revision. I was thinking that you could use a pair of recordsets, the first consisting of the first and only the first record with value xxx, and the second consisting of all the other instances of xxx. Then you can skip through the second recordset and compare each record with the record in the first recordset, updating only the single record with data from the current row in the second recordset. The idea is to update only one record in each group. Once that is done, then you can select top 1 of each group and group by the identifier. A Select Into would give you only the first record from each group. You could trash or rename the large table and the target table created by the Select Into would contain only the rows of interest, It occurs to me that you could probably even generate the compare/update statements, since they will be almost identical save for the given fieldname. The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. hth, Arthur From cfoust at infostatsystems.com Tue Sep 22 09:45:22 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:45:22 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Hmmn ... If wiseGuy = 'Gustav' The Kill(wiseGuy) Charlotte -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 22, 2009 1:10 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 09:52:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 15:52:36 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:51:00 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:51:00 -0700 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: John, I'm confused. Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records, perhaps in a union query, that contained both answer 1 and answer 2? Is the client wanting to query across polls, so that if the respondent answers answer1 in one poll and answer2 in another, they want to see that client? It sounds like totally meaningless information (not an uncommon request, in my experience). Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:00 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two > chars length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to > query your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework > handle such a table with 640 fields. Can you publish this table > structure plus say 100 records with cleaned-up or hashed name, > address, phone and other personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more > out - your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try > to string together 640 fields with long field names (and they are > loooong) you end up with an error message from SQL Server that the > string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one >> go provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code >> working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() >> function should be used to have relatively small subsets of record >> batches to process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe >> in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably >> one compound natural key clustered index built using the most >> selective (/the most often used in queries) columns. If there are a >> few such columns at least one of which is used in all the queries >> then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be >> fulfilled because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows >> 3.086 million individduals with multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 09:55:13 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:55:13 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> Message-ID: <4AB8E551.8050902@colbyconsulting.com> >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Tue Sep 22 09:59:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 10:59:51 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> <29f585dd0909220742u6efe74ecw5256c4e031d5f749@mail.gmail.com> Message-ID: <4AB8E667.6010707@colbyconsulting.com> Arthur > The only potential fly in the ointment that I can see is What to do if the records being compared both contain values that do not match, i.e. A.Has_Dog = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data collections. And the answer is "nothing". There is no way to determine date order of these records, they simply did not have that data in the original records. Thus any answer is equally valid. Take the FIRST answer and keep it. Never update the first record FieldN if there is already data in that field. This data is full of incongruities like this. Income could rise or fall, children could leave home or die, spouse could divorce or die. We cannot discover any of this kind of thing. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's almost exactly what I would propose, JC, with perhaps a small > revision. I was thinking that you could use a pair of recordsets, the first > consisting of the first and only the first record with value xxx, and the > second consisting of all the other instances of xxx. Then you can skip > through the second recordset and compare each record with the record in the > first recordset, updating only the single record with data from the current > row in the second recordset. The idea is to update only one record in each > group. Once that is done, then you can select top 1 of each group and group > by the identifier. A Select Into would give you only the first record from > each group. You could trash or rename the large table and the target table > created by the Select Into would contain only the rows of interest, > It occurs to me that you could probably even generate the compare/update > statements, since they will be almost identical save for the given > fieldname. > > The only potential fly in the ointment that I can see is What to do if the > records being compared both contain values that do not match, i.e. A.Has_Dog > = 'Y' and B.Has_Dog = 'N' (this could happen if the dog died between data > collections. > > hth, > Arthur > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From cfoust at infostatsystems.com Tue Sep 22 09:58:55 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 22 Sep 2009 07:58:55 -0700 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Sep 22 10:01:51 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 22 Sep 2009 10:01:51 -0500 Subject: [dba-VB] c# - Monitor folder and run application In-Reply-To: <4ab7fa64.0707d00a.0ddb.006b@mx.google.com> Message-ID: With VB 6 yes. And I'm sure you could do something very similar in VB.Net or C#. It's just API calls. Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, September 21, 2009 5:12 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] c# - Monitor folder and run application Hey, that is way cool Drew. I had something which "tried" to monitor what went where when I installed new software. If I ever go back to needing that again, this is what I will use. Does it compile to an EXE? Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 21 September 2009 23:01 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# - Monitor folder and run application Sorry, no idea how to do this in C#, never dug into that language. But in VB, I have a class that does this. It doesn't use a timer to do a Dir(), it uses the waitforsingleobject to loop with a hook into the OS file system. It's very cool, though I've never really put it into use for anything. It's a Class (in VB (6)), which raises an event for any file change. What's WAY better then the Dir method, is that the hook is applicable to all sub folders. (So if you monitor C:\), you will see EVERY SINGLE file activity (create, read, change, modify and rename). Here's the class in VB(6): FSMoniter: Option Explicit Event FileActivity(strFileName As String, Action As FS_File_Actions) Public PathToMonitor As String Dim blKeepMonitoring As Boolean Private Declare Function FS_CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function FS_ReadDirChanges Lib "kernel32" Alias "ReadDirectoryChangesW" (ByVal hDir As Long, ByVal lpBuffer As Long, ByVal lenBuffer As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByRef dwBytesReturned As Long, ByVal lpOverLapped As Long, ByVal dwCallBack As Long) As Long Private Declare Function FS_CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Private Declare Function FS_CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Private Declare Function FS_ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Private Declare Sub FS_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long) Private Declare Function FS_WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Const FILE_LIST_DIRECTORY = (&H1) Private Const FILE_SHARE_DELETE = &H4 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Private Const FILE_FLAG_OVERLAPPED = &H40000000 Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Private Const FILE_NOTIFY_CHANGE_CREATION = &H40 Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Private Const FILE_NOTIFY_CHANGE_LAST_ACCESS = &H20 Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Private Const FILE_NOTIFY_CHANGE_SIZE = &H8 Private Const WAIT_TIMEOUT = 258& Public Enum FS_File_Actions FILE_ACTION_ADDED = &H1 FILE_ACTION_MODIFIED = &H3 FILE_ACTION_REMOVED = &H2 FILE_ACTION_RENAMED_NEW_NAME = &H5 FILE_ACTION_RENAMED_OLD_NAME = &H4 End Enum Private Type FS_FILE_NOTIFY_INFORMATION NextEntryOffset As Long Action As FS_File_Actions FileNameLength As Long FileName(1024 - 1) As Byte End Type Private Type FS_OVERLAPPED Internal As Long InternalHigh As Long Offset As Long OffsetHigh As Long hEvent As Long End Type Public Function StartMonitoring() 'On Error GoTo ErrorHandler Dim hDir As Long Dim dwReturn As Long Dim intReturnSize As Long Dim ovr As FS_OVERLAPPED Dim hEvent As Long Dim intWatchFilter As Long Dim fni As FS_FILE_NOTIFY_INFORMATION Dim fniBuf(0 To 1024 * 5 - 1) As Byte Dim BufferPos As Long Dim strFileName As String blKeepMonitoring = True intWatchFilter = FILE_NOTIFY_CHANGE_ATTRIBUTES + FILE_NOTIFY_CHANGE_CREATION + FILE_NOTIFY_CHANGE_DIR_NAME + FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_LAST_ACCESS + FILE_NOTIFY_CHANGE_LAST_WRITE + FILE_NOTIFY_CHANGE_SECURITY + FILE_NOTIFY_CHANGE_SIZE hDir = FS_CreateFile(PathToMonitor, FILE_LIST_DIRECTORY, FILE_SHARE_READ Or FILE_SHARE_DELETE Or FILE_SHARE_WRITE, Null, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS Or FILE_FLAG_OVERLAPPED, 0) If hDir = -1 Then MsgBox "Invalid Handle Value...Error: " & Err.LastDllError End If hEvent = FS_CreateEvent(0&, True, True, "FS_IOEvent") ovr.hEvent = hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) If dwReturn = 0 Then MsgBox "Error Calling ReadDirChanges" MsgBox Err.LastDllError MsgBox ovr.hEvent MsgBox hDir End If Do Until blKeepMonitoring = False BufferPos = 0 dwReturn = FS_WaitForSingleObject(hEvent, 100) If dwReturn <> WAIT_TIMEOUT Then 'MsgBox fniBuf(0) FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) While fni.NextEntryOffset <> 0 BufferPos = BufferPos + fni.NextEntryOffset FS_CopyMemory VarPtr(fni), VarPtr(fniBuf(BufferPos)), Len(fni) strFileName = fni.FileName strFileName = Left(strFileName, fni.FileNameLength / 2) RaiseEvent FileActivity(strFileName, fni.Action) Wend FS_ResetEvent hEvent dwReturn = FS_ReadDirChanges(hDir, VarPtr(fniBuf(0)), UBound(fniBuf) + 1, True, intWatchFilter, intReturnSize, VarPtr(ovr), 0&) End If DoEvents Loop ErrorHandler: FS_CloseHandle hEvent FS_CloseHandle hDir End Function Public Function StopMonitoring() blKeepMonitoring = False End Function Private Sub Class_Initialize() blKeepMonitoring = False End Sub Then to use this class, this is the code behind a sample form with a listbox, text box, and two command buttons: Option Explicit Dim WithEvents fsm As FSMonitor Private Sub Command1_Click() Set fsm = New FSMonitor fsm.PathToMonitor = Me.txtPath fsm.StartMonitoring End Sub Private Sub Command2_Click() fsm.StopMonitoring End Sub Private Sub fsm_FileActivity(strFileName As String, Action As FS_File_Actions) Select Case Action Case FILE_ACTION_ADDED Me.lstFileActivity.AddItem strFileName & " - Added" Case FILE_ACTION_MODIFIED Me.lstFileActivity.AddItem strFileName & " - Modified" Case FILE_ACTION_REMOVED Me.lstFileActivity.AddItem strFileName & " - Removed" Case FILE_ACTION_RENAMED_NEW_NAME Me.lstFileActivity.AddItem strFileName & " - New Name" Case FILE_ACTION_RENAMED_OLD_NAME Me.lstFileActivity.AddItem strFileName & " - Old Name" End Select End Sub Run this, and use the path of C:\ and watch all the standard file activity happening with just plain old windows! LOL Drew -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, September 19, 2009 1:44 PM To: VBA Subject: [dba-VB] c# - Monitor folder and run application Just wondering if anyone has already done this and could send me a solution. I need to monitor a folder and run an application if a file exists. I have found code that runs an app and waits a time period for it to complete, closing the app if it doesn't complete within that time period. In addition to that I need the monitoring code, and all wrapped up in a single solution. This doesn't appear too tough given all the code snipits out there but why reinvent the wheel if you have done it. -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Sep 22 10:17:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 11:17:17 -0400 Subject: [dba-VB] Merge rows In-Reply-To: References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4AB8EA7D.1080401@colbyconsulting.com> Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust From max.wanadoo at gmail.com Tue Sep 22 10:42:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:42:35 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> > Does that clarify it for you? It does, so really with the Tabs JIT you are not much better off. With my On-Demand approach, only data that is wanted there-and-now is loaded each time you navigate between records AND furthermore, I give them the option of a blank sub-form which means there is no extraneous data overhead when navigating unless the user wants it. I think my On-Demand approach is better for lots of reasons, but if your are happy with your JIT-Tabs approach then I am happy for you. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 22 September 2009 15:59 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) It means that once you set the master/child links (in Access), for instance, the subform would stay bound, so you wouldn't have to load it again when you moved to another tab and back. In our .Net apps, we drop a subform control on a particular tab. When the tab is selected, we load the subform and call its custom FillData routine, after that, as long as the parent form is open, we don't have to reload that subform, only point it to the appropriate record. Does that clarify it for you? It's possible to use a single subform control and change which subform is bound to it, but that involves unloading and reloading the subform, so the tabl approach is faster. Charlotte Foust -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, September 22, 2009 7:53 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows (now: seriously OT) Charlotte. Quick question please. You know when we were talking about the tabs not doing anything unless instantiated, (ie, user clicked on one), does that mean that in that case the "contents" of the subform would be loaded for that tab, and the stay loaded? Thinking about that in bed last night. What am I like, eh! MAx On 22/09/2009, Charlotte Foust wrote: > Hmmn ... > > If wiseGuy = 'Gustav' The Kill(wiseGuy) > > Charlotte > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, September 22, 2009 1:10 AM > To: dba-vb at databaseadvisors.com > Subject: Re: [dba-VB] Merge rows (now: seriously OT) > > So Max wins again! > > /gustav > >>>> "Stuart McLachlan" 22-09-2009 00:55 >>> > > Select Distinct, KeyField, Max(fld2), Max(fld3).......... > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Sep 22 10:50:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 16:50:17 +0100 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8D871.6060001@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> Message-ID: <4ab8f27c.0a04d00a.2c43.215f@mx.google.com> No you don't! Sheeesh! Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 15:00 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, > OK, but in proposed solution there is no need to "string together 640 fields". Yes you do. See my post to Max for further explanation. You might be merging a half dozen records into one. Each field of each record has to be examined to see if there is data in it. You can't simply update the first record with the second if the first has data but the second doesn't - you lose the data in the first. > Well, then you can create extension table for new fields. And of course this is an option. You have to remember that there will be 50 million records. When you start doing complex WHERE clauses to and / or as many as a dozen fields to perform the select, things get hairy. Now you are adding in the join of two tables. The sheer quantity of records cause speed issues that you would not even have to consider in situations with a thousand or even a million records. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > OK, but in proposed solution there is no need to "string together 640 > fields". Or do you mean that one static(/statically compiled) T-SQL > statement has some limitations? Then you can make a view with two chars > length of column names. > > <<< > the client wants to ADD more fields. > Well, then you can create extension table for new fields. > > BTW, you may try to use LINQ for SQL or ADO.NET Entity Framework to query > your database. > > I'd be interested to see how LINQ for SQL or ADO.NET Entity Framework handle > such a table with 640 fields. Can you publish this table structure plus say > 100 records with cleaned-up or hashed name, address, phone and other > personal information? > > Thank you. > > -- > Shamil > > P.S. > > <<< > This is truly a database from hell. > Yes. Some people supposes that all the computing technology is coming > directly from the Hell - they promise a lot but they take even more out - > your life... > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 4:13 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > One of the problems I run into is the length of the string that can be > manipulated in SQL Server. > There is either a 4K or 8K limit (don't remember which) but if you try to > string together 640 fields > with long field names (and they are loooong) you end up with an error > message from SQL Server that > the string is too long. > > This is truly a database from hell. > > To make matters worse, the client wants to ADD more fields. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> Hi John, >> >> 3.086 million records seems to be manageable to be "deduped" in one go >> provided the source 50 million records table is already prepared. >> >> For "deduping" you can use >> >> 1. One stored procedure which: >> a) will insert new individual attributes' record and >> b) will update not null values for existing individual attributes' >> record. >> >> 2. One C#/VB.NET function to get records from the source 50 million > records' >> table and to "feed" the above stored procedure. >> >> That's a rough plan. >> >> Of course developing SP with 640 parameters and C#/VB.NET code working > with >> that SP is not an easy manual work - that SP and code could be generated. >> >> Not sure yet here that SP can have 640 parameters therefore it may be > needed >> to have several SPs. >> >> To get source rows a T-SQL select expression with ROW_NUMBER() function >> should be used to have relatively small subsets of record batches to >> process. This selection can be done using multi-threaded C#/VB.Net code . > Do >> you have any index over source 50 million rows table? - ROW_NUMBER() >> function will need such an index (I'm talking MS SQL 2005 here, maybe in > MS >> SQL 2008 ROW_NUMBER() can be used without any indexes)... >> >> When source data deduped into ~3.086 million records table then that > "small" >> table can get a few the most selective columns' indexes, and probably one >> compound natural key clustered index built using the most selective (/the >> most often used in queries) columns. If there are a few such columns at >> least one of which is used in all the queries then your application > response >> time should be finally measured in seconds... I hope... >> >> That's basically it. >> >> Please correct me if you suppose that the above plan can't be fulfilled >> because of some reasons I'm missing here. >> >> Thank you. >> >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 5:19 AM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> Not 50 million, though still a lot. I just ran a query which shows 3.086 >> million individduals with >> multiple records. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> 50 Million! >>> >>> Max >>> >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan >>> Sent: 21 September 2009 23:55 >>> To: Discussion concerning Visual Basic and related programming issues. >>> Subject: Re: [dba-VB] Merge rows >>> >>> On the assumption that you don't really care which record you get if > there >>> are conflicts, I'd >>> build a new table from: >>> >>> Select Distinct, KeyField, Max(fld2),Max(fld3).......... >>> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <4AB8DF51.1050106@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com> <4AB7FEB8.6080403@colbyconsulting.com> <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8C12B.2040406@colbyconsulting.com> <4AB8D02B.8070508@colbyconsulting.com> <00dc01ca3b8e$72d69220$5883b660$@spb.ru> <4AB8DF51.1050106@colbyconsulting.com> Message-ID: <00de01ca3b9c$e8b0fa90$ba12efb0$@spb.ru> <<< then do the entire thing in memory, updating the first record with only "data containing fields" >>> John, I suppose that MS SQL is "smart enough" to do that "dirty work" for you - if you update a field with the same value it has in the case the updating value is NULL or (NULL or EMPTY string for char data) as it's done in SP I outlined then MS SQL will not make that field update at all... <<< Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. >>> ...you can do all that in one SP, which I have got outlined in my previous posting <<< This might be a good thing to do in C# to learn ADO stuff. >>> Yes, but that would be rather simple (although large because of 640 fields) function, which will use: SqlConnction, SqlCommand and SqlDataReader Remark: as I mentioned previously you can use ROW_NUMBER() T-SQL function to organize getting records' batches to be processed, say 1000 or at a time, and getting that batches can be made as a multi-threaded function... <<< Relatively speaking, this would no doubt FLY. >>> ...then it could fly, although I can't say for sure because "flying program" is a relative term heavily depending on one's point of view/experience :) --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:30 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] SPAM-LOW: Re: Merge rows >I assume you have a unique natural (alt-)key, say, FirstName, LastName (of course you'll have some more fields in this key: Even better I have a HashPerson field which is a unique identifier based on FName/LName/Addr/Zip5/Zip4. I assume your code is comparing fields values in a loop. Yep, that is what has to go on. I was going to do a SQL update but an in-memory operation would probably be optimum. What would REALLY be optimum wold be to read the set of records into an ADO recordset, then do the entire thing in memory, updating the first record with only "data containing fields" from the subsequent records. Then when the entire recordset had updated that first record, write the first record back out, perhaps even to a new table. Write the PKIDs from the now "unneeded" or "duplicate" records to a table to use in a delete query at the end. Relatively speaking, this would no doubt FLY. This might be a good thing to do in C# to learn ADO stuff. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I suppose you can use static (compiled) SP - I assume you have a unique > natural (alt-)key, say, FirstName, LastName (of course you'll have some more > fields in this key: > > Procedure MySP > ( > @firstName nvarchar(50), > @lastName nvarchar(50), > --- > @f1 int, > ... > @fn nvarchar(80) > ) > > > set nocount on > declare @testCount int > select @testCount = count(*) from MyTable where FirstName = @firstName and > LastName = @lastName > > if (@testCount = 0) > begin > -- insert > End > > else > > begin > update myTable > set > f1 = IsNull(@f1, f1), > ... > fn = case (isnull(len(@fn),0)) when 0 then fn else @fn end > where FirstName = @firstName and LastName = @lastName > end > > set nocount off > > Try. > > -- > Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8E551.8050902@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> Message-ID: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <<< However the results should be ... satisfying. ;) >>> Yes, but for 3+ millions records your current system looks more than enough from here. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 6:55 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows >BTW, I really envy you on that "mighty computers you have" subject - with white envy :)) Yes, they are reasonably powerful. They would be more powerful if I could afford... Top end Intel processors, real server motherboards with more memory slots, multi-chip motherboards etc. But for what I can afford they do pretty well. You ain't seen nothing yet though. I have every intention of creating RAID0 arrays of FLASH drives large enough to hold this HSID database. Probably three or four flash drives of 60 gigs each, raid zero. Remember that most of the time the actual day to day processing of this table is read only. Except for the kind of cleanup we are discussing here, the table does not change on a month to month basis. If I can get the db out on a multi-spindle RAID0 flash drive array, then the IOPs will skyrocket, the data transfer will skyrocket and the normal day to day stuff will REALLY fly. I have read reviews of systems like this and they say it is extremely close to having the entire database contained in RAM. Right now these flash drives are still quite expensive. 60 gig drives are $230, so it would cost me $1000 to do this. However the results should be ... satisfying. ;) John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > you lose the data in the first. > John, > > Our postings crossed - I have posted solution for the above issue in my > recent posting. > > <<< > that there will be 50 million records > But you say there are "just" 3+ millions when the data are "deduped" - that > should be not a big issue for the joins on your mighty computers (BTW, I > really envy you on that "mighty computers you have" subject - with white > envy :)) > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Tue Sep 22 10:54:00 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 19:54:00 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8EA7D.1080401@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> Message-ID: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <<< Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) ... The entire point is to make the process faster and faster and faster. >>> John, If you have many [has Kids], [HasCat], [HasDog] kind of fields you can consider combining them into bit array fields, for predefined range values you can make say half-byte groups bit array fields values... by thus minimizing the size of your table record... --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 7:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Charlotte, >Why would you get a better result from one ugly record with all the data in it than from querying for a master record with child records There is nothing inherently pretty or ugly from having all answers in a single record. This is nothing more than a bunch of polls. From a data processing perspective would you prefer that the person answer all 640 questions on a single form (record) or on 640 records. Remember this is 50 MILLION "people" we are talking about here (minus the duplicates of course). The client wants to be able to ask questions about any questions in the table that a given person has answered. He often gives a ("FieldA = 1" AND "FieldB = T" AND "FieldC = M") AND (FieldC = Y" OR "FieldD = Y" OR "FieldE = Y") etc etc. Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) OR ...) It is simply easier, faster and more reliable if the data is all in a single record rather than spread across multiple records. Again - 50 MILLION records, 640 fields. Fancy tricks like subtables and joins bog down the queries. Answers in separate records cause ANDS to fall out. Things like that. Heck, even not having an index on a single field in the WHERE can cause the result to drop from 2 minutes to 20 minutes. This is a business and making the process faster means I can charge the same amount for less of my time. The entire point is to make the process faster and faster and faster. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > John, > > I'm confused. Why would you get a better result from one ugly record > with all the data in it than from querying for a master record with > child records, perhaps in a union query, that contained both answer 1 > and answer 2? Is the client wanting to query across polls, so that if > the respondent answers answer1 in one poll and answer2 in another, they > want to see that client? It sounds like totally meaningless information > (not an uncommon request, in my experience). > > Charlotte Foust _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From max.wanadoo at gmail.com Tue Sep 22 11:09:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:09:59 +0100 Subject: [dba-VB] Merge rows (now: seriously OT) In-Reply-To: References: Message-ID: <4ab8f719.0702d00a.6422.15b2@mx.google.com> Immer! LOL Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 22 September 2009 09:10 To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] Merge rows (now: seriously OT) So Max wins again! /gustav >>> "Stuart McLachlan" 22-09-2009 00:55 >>> Select Distinct, KeyField, Max(fld2), Max(fld3).......... _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:14:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:14:07 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> Message-ID: <4AB8F7CF.9010304@colbyconsulting.com> Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max From jwcolby at colbyconsulting.com Tue Sep 22 11:16:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:16:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> Message-ID: <4AB8F87A.3090701@colbyconsulting.com> Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 11:30:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:30:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> Message-ID: <4AB8FBB0.3060904@colbyconsulting.com> This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil From max.wanadoo at gmail.com Tue Sep 22 11:29:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 17:29:54 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8F7CF.9010304@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> Message-ID: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> > With your approach leaving the subforms bound is difficult to say the least. As difficult as one line of code Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:14 To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, It doesn't have to be either / or. I used to do the unbind when the user clicked off the tab and William objected, saying that his users prefer that it stay bound. All it takes is removing the form name form the form control and voila, it is unloaded. Leave it there and voila, it stays bound. My personal feeling is that unbinding it makes a lot of sense when there are a ton of tabs, and / or the subforms contain a ton of records. The time to navigate through the parent record is a lot less (faster) OTOH if there aren't many subforms then it often makes sense to leave it bound. One way or the other, I do exactly this, decide on a form by form basis whether it makes sense to unbind as the user leaves the tab. With your approach leaving the subforms bound is difficult to say the least. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> Does that clarify it for you? > > > It does, so really with the Tabs JIT you are not much better off. > > With my On-Demand approach, only data that is wanted there-and-now is loaded > each time you navigate between records AND furthermore, I give them the > option of a blank sub-form which means there is no extraneous data overhead > when navigating unless the user wants it. > > I think my On-Demand approach is better for lots of reasons, but if your are > happy with your JIT-Tabs approach then I am happy for you. > > > > Max _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 11:33:02 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 20:33:02 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8F87A.3090701@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com> <00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <00dd01ca3b8f$5c7eb3d0$157c1b70$@spb.ru> <4AB8E551.8050902@colbyconsulting.com> <00e301ca3b9c$eaef9ff0$c0cedfd0$@spb.ru> <4AB8F87A.3090701@colbyconsulting.com> Message-ID: <00e601ca3ba2$5c221a40$14664ec0$@spb.ru> John, Yes, that is huge. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:17 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, The three million is ONLY duplicates. The main table is 50 million, and there are actually TWO fifty million record tables, the fact table and the name / address table. These always have to be joined - the "product" is a list of names / addresses that fit the WHERE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > However the results should be ... satisfying. ;) > Yes, but for 3+ millions records your current system looks more than enough > from here. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 6:55 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > >BTW, I really envy you on that "mighty computers you have" subject - with > white envy :)) > > Yes, they are reasonably powerful. They would be more powerful if I could > afford... Top end Intel > processors, real server motherboards with more memory slots, multi-chip > motherboards etc. > > But for what I can afford they do pretty well. > > You ain't seen nothing yet though. I have every intention of creating RAID0 > arrays of FLASH drives > large enough to hold this HSID database. Probably three or four flash > drives of 60 gigs each, raid > zero. Remember that most of the time the actual day to day processing of > this table is read only. > Except for the kind of cleanup we are discussing here, the table does not > change on a month to month > basis. > > If I can get the db out on a multi-spindle RAID0 flash drive array, then the > IOPs will skyrocket, > the data transfer will skyrocket and the normal day to day stuff will REALLY > fly. > > I have read reviews of systems like this and they say it is extremely close > to having the entire > database contained in RAM. > > Right now these flash drives are still quite expensive. 60 gig drives are > $230, so it would cost me > $1000 to do this. However the results should be ... satisfying. ;) > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> you lose the data in the first. >> John, >> >> Our postings crossed - I have posted solution for the above issue in my >> recent posting. >> >> <<< >> that there will be 50 million records >> But you say there are "just" 3+ millions when the data are "deduped" - > that >> should be not a big issue for the joins on your mighty computers (BTW, I >> really envy you on that "mighty computers you have" subject - with white >> envy :)) >> >> Thank you. >> >> -- >> Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From drawbridgej at sympatico.ca Tue Sep 22 11:35:40 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 22 Sep 2009 12:35:40 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <61CB308F5EE746B69904DD47CBF50795@AMDXP> My initial thought was bit fields also, until I saw boat_length and income identified by ranges. -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 12:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 11:39:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:39:37 -0400 Subject: [dba-VB] Counting data elements Message-ID: <4AB8FDC9.1090004@colbyconsulting.com> I am in the process of counting data elements in my database from hell fact table. It turns out there are 584 fields in the table. No indexes (I created a new table copy in a new database to do this stuff) and each field count is taking about 0:1:40. When I am done with this I will have a list of fields and the count of data elements in each field. The objective is to see if I can delete some of the fields because they contain no data elements. From reading the table definition spreadsheet I got from the client, I am reasonably certain that there are completely empty fields. Not sure how many. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 11:40:45 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 12:40:45 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> Message-ID: <4AB8FE0D.4010704@colbyconsulting.com> Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue Sep 22 12:03:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 13:03:50 -0400 Subject: [dba-VB] SPAM-LOW: Re: Merge rows In-Reply-To: <61CB308F5EE746B69904DD47CBF50795@AMDXP> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com><00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <61CB308F5EE746B69904DD47CBF50795@AMDXP> Message-ID: <4AB90376.2040103@colbyconsulting.com> Yes, there are fields with real data in them. Mostly they are just Y or nothing. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > My initial thought was bit fields also, until I saw boat_length and income > identified by ranges. > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 12:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Tue Sep 22 13:35:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 19:35:03 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB8FE0D.4010704@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> Message-ID: <4ab91918.1c05d00a.04a7.3583@mx.google.com> Only one sub form is loaded at any one time. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 17:41 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Do you have a single subform control? If so then you can't have 10 subform controls and all of them left bound. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >> With your approach leaving the subforms bound is difficult to say the > least. > > As difficult as one line of code > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:14 > To: Discussion concerning Visual Basic and related programming issues. > Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Max, > > It doesn't have to be either / or. > > I used to do the unbind when the user clicked off the tab and William > objected, saying that his > users prefer that it stay bound. All it takes is removing the form name > form the form control and > voila, it is unloaded. Leave it there and voila, it stays bound. > > My personal feeling is that unbinding it makes a lot of sense when there are > a ton of tabs, and / or > the subforms contain a ton of records. The time to navigate through the > parent record is a lot less > (faster) > > OTOH if there aren't many subforms then it often makes sense to leave it > bound. > > One way or the other, I do exactly this, decide on a form by form basis > whether it makes sense to > unbind as the user leaves the tab. > > With your approach leaving the subforms bound is difficult to say the least. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >>> Does that clarify it for you? >> >> It does, so really with the Tabs JIT you are not much better off. >> >> With my On-Demand approach, only data that is wanted there-and-now is > loaded >> each time you navigate between records AND furthermore, I give them the >> option of a blank sub-form which means there is no extraneous data > overhead >> when navigating unless the user wants it. >> >> I think my On-Demand approach is better for lots of reasons, but if your > are >> happy with your JIT-Tabs approach then I am happy for you. >> >> >> >> Max > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From shamil at smsconsulting.spb.ru Tue Sep 22 14:03:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 22 Sep 2009 23:03:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB8FBB0.3060904@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> Message-ID: <00f401ca3bb7$676c1170$36443450$@spb.ru> John, You can use bitmask(/bitwise) operations - and you can use symbolic constants/variables for bits to not get "seriously nervuos". How many Boolean value fields do you have in your table? -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 8:31 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows This is an idea worthy of consideration. The problem is translating the client's original field name to a bit in the bit field when he sends me an order. The client has a spreadsheet of these fields and sends me orders with the field names (or more often a "record number" in the spreadsheet). I look down through the spreadsheet to find the record number, translate that to the field name, then drop that field name into the where clause of a query. It would be fascinating to have an already translated bit map of these fields, and able to do these kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND Bit69) OR (BIT190 OR Bit191) etc. Not exactly readable, but I have to assume that it would be much faster. It would make me seriously nervous though that I actually got the right bits. As it is now it is "plain English", you can read the field names from the SQL statement. I would definitely have to have a well tested tool that performed the bit lookup and wrote the where(). Can you index bits? If not you would turn the actual query into a ton of table scans, though as you mention the size of the table would shrink dramatically. It might actually be possible to get the entire table into memory if each field (that contained just 'Y' values) was a single bit. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > <<< > Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR HASCat) > OR ...) > ... > The entire point is to make the process faster and faster and faster. > John, > > If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > consider combining them into bit array fields, for predefined range values > you can make say half-byte groups bit array fields values... by thus > minimizing the size of your table record... > > --Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4447 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 14:20:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 15:20:58 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f401ca3bb7$676c1170$36443450$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> Message-ID: <4AB9239A.1010205@colbyconsulting.com> Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4447 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 15:15:13 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 00:15:13 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9239A.1010205@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> Message-ID: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - that will be BINARY(50) in T-SQL. Although I'm not currently sure you can implement bitwise logical operations solely using T-SQL: but I suppose you can get subset of data using non-Boolean where clause, and then scan it in C#/VB.NET and filter using bitwise C# operations/functions over bit arrays. Something like that should work I suppose. Please correct me if I'm wrong. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, September 22, 2009 11:21 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Hundreds. Not sure really. Probably somewhere around 400-500. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > You can use bitmask(/bitwise) operations - and you can use symbolic > constants/variables for bits to not get "seriously nervuos". > > How many Boolean value fields do you have in your table? > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 8:31 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > This is an idea worthy of consideration. The problem is translating the > client's original field > name to a bit in the bit field when he sends me an order. > > The client has a spreadsheet of these fields and sends me orders with the > field names (or more often > a "record number" in the spreadsheet). I look down through the spreadsheet > to find the record > number, translate that to the field name, then drop that field name into the > where clause of a query. > > It would be fascinating to have an already translated bit map of these > fields, and able to do these > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > Bit69) OR (BIT190 OR > Bit191) etc. > > Not exactly readable, but I have to assume that it would be much faster. It > would make me seriously > nervous though that I actually got the right bits. As it is now it is > "plain English", you can read > the field names from the SQL statement. I would definitely have to have a > well tested tool that > performed the bit lookup and wrote the where(). > > Can you index bits? If not you would turn the actual query into a ton of > table scans, though as you > mention the size of the table would shrink dramatically. It might actually > be possible to get the > entire table into memory if each field (that contained just 'Y' values) was > a single bit. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> <<< >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > HASCat) >> OR ...) >> ... >> The entire point is to make the process faster and faster and faster. >> John, >> >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >> consider combining them into bit array fields, for predefined range values >> you can make say half-byte groups bit array fields values... by thus >> minimizing the size of your table record... >> >> --Shamil > > _______________________________________________ __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 15:22:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:22:16 -0400 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4ab91918.1c05d00a.04a7.3583@mx.google.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> Message-ID: <4AB931F8.8010407@colbyconsulting.com> Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Sep 22 15:25:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 16:25:06 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB932A2.6050301@colbyconsulting.com> Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: <00f601ca3bc8$62896570$279c3050$@spb.ru> Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From shamil at smsconsulting.spb.ru Tue Sep 22 16:05:14 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 01:05:14 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB932A2.6050301@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> Message-ID: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> John, OK, someday you can make it working/flying using C# with your current DB size "shrinked" ~8 times and your current processing time shortened X times (to an order of magnitude? - wild guess)... ... but do not wait until you'll get fluent with C# - it's time consuming as everybody's experience shows - and it's not needed to get the outlined above results - just do it - how to do it seems to be clear now?... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 12:25 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, You are asking the wrong guy on this stuff. I am not fluent in SQL Server, even with all that I do. Eventually I will be moving everything I can to c#, once I am fluent in c#. For now I use stored procedures for all of the actual order processing. The whole bit mask thing will definitely be "someday", with a big MAYBE. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: >> John, >> >> You can use bitmask(/bitwise) operations - and you can use symbolic >> constants/variables for bits to not get "seriously nervuos". >> >> How many Boolean value fields do you have in your table? >> >> -- >> Shamil >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, September 22, 2009 8:31 PM >> To: Discussion concerning Visual Basic and related programming issues. >> Subject: Re: [dba-VB] Merge rows >> >> This is an idea worthy of consideration. The problem is translating the >> client's original field >> name to a bit in the bit field when he sends me an order. >> >> The client has a spreadsheet of these fields and sends me orders with the >> field names (or more often >> a "record number" in the spreadsheet). I look down through the > spreadsheet >> to find the record >> number, translate that to the field name, then drop that field name into > the >> where clause of a query. >> >> It would be fascinating to have an already translated bit map of these >> fields, and able to do these >> kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND >> Bit69) OR (BIT190 OR >> Bit191) etc. >> >> Not exactly readable, but I have to assume that it would be much faster. > It >> would make me seriously >> nervous though that I actually got the right bits. As it is now it is >> "plain English", you can read >> the field names from the SQL statement. I would definitely have to have a >> well tested tool that >> performed the bit lookup and wrote the where(). >> >> Can you index bits? If not you would turn the actual query into a ton of >> table scans, though as you >> mention the size of the table would shrink dramatically. It might > actually >> be possible to get the >> entire table into memory if each field (that contained just 'Y' values) > was >> a single bit. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Shamil Salakhetdinov wrote: >>> <<< >>> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR >> HASCat) >>> OR ...) >>> ... >>> The entire point is to make the process faster and faster and faster. >>> John, >>> >>> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can >>> consider combining them into bit array fields, for predefined range > values >>> you can make say half-byte groups bit array fields values... by thus >>> minimizing the size of your table record... >>> >>> --Shamil >> _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From jwcolby at colbyconsulting.com Tue Sep 22 16:23:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 17:23:35 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> Message-ID: <4AB94057.3080704@colbyconsulting.com> Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Sep 22 16:48:02 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 07:48:02 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> Message-ID: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, September 22, 2009 11:21 PM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Hundreds. Not sure really. Probably somewhere around 400-500. > > John W. Colby > www.ColbyConsulting.com > > > Shamil Salakhetdinov wrote: > > John, > > > > You can use bitmask(/bitwise) operations - and you can use symbolic > > constants/variables for bits to not get "seriously nervuos". > > > > How many Boolean value fields do you have in your table? > > > > -- > > Shamil > > > > -----Original Message----- > > From: dba-vb-bounces at databaseadvisors.com > > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Tuesday, September 22, 2009 8:31 PM > > To: Discussion concerning Visual Basic and related programming issues. > > Subject: Re: [dba-VB] Merge rows > > > > This is an idea worthy of consideration. The problem is translating the > > client's original field > > name to a bit in the bit field when he sends me an order. > > > > The client has a spreadsheet of these fields and sends me orders with the > > field names (or more often > > a "record number" in the spreadsheet). I look down through the > spreadsheet > > to find the record > > number, translate that to the field name, then drop that field name into > the > > where clause of a query. > > > > It would be fascinating to have an already translated bit map of these > > fields, and able to do these > > kinds of where clauses. It would end up being Where (Bit37 AND Bit44 AND > > Bit69) OR (BIT190 OR > > Bit191) etc. > > > > Not exactly readable, but I have to assume that it would be much faster. > It > > would make me seriously > > nervous though that I actually got the right bits. As it is now it is > > "plain English", you can read > > the field names from the SQL statement. I would definitely have to have a > > well tested tool that > > performed the bit lookup and wrote the where(). > > > > Can you index bits? If not you would turn the actual query into a ton of > > table scans, though as you > > mention the size of the table would shrink dramatically. It might > actually > > be possible to get the > > entire table into memory if each field (that contained just 'Y' values) > was > > a single bit. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Shamil Salakhetdinov wrote: > >> <<< > >> Think ("Hispanic" AND (income >50K) AND (Has Kids)) AND ((HasDog OR > > HASCat) > >> OR ...) > >> ... > >> The entire point is to make the process faster and faster and faster. > >> John, > >> > >> If you have many [has Kids], [HasCat], [HasDog] kind of fields you can > >> consider combining them into bit array fields, for predefined range > values > >> you can make say half-byte groups bit array fields values... by thus > >> minimizing the size of your table record... > >> > >> --Shamil > > > > _______________________________________________ > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Sep 22 17:06:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 22 Sep 2009 23:06:57 +0100 Subject: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) In-Reply-To: <4AB931F8.8010407@colbyconsulting.com> References: <4ab8f0af.0707d00a.6fa5.ffffae8b@mx.google.com> <4AB8F7CF.9010304@colbyconsulting.com> <4ab8fbc7.1818d00a.140c.2b06@mx.google.com> <4AB8FE0D.4010704@colbyconsulting.com> <4ab91918.1c05d00a.04a7.3583@mx.google.com> <4AB931F8.8010407@colbyconsulting.com> Message-ID: <4ab94aa8.0a04d00a.02ca.ffff9409@mx.google.com> I can see that in your situation. In mine it is different. Horses for courses. If I were to load and leave loaded all the subforms then I would be back where I started. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 September 2009 21:22 To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) Max, That really wasn't my question. Do you have multiple subform CONTROLS on your form, or do you have a single subform control and just tell that one subform control to load a specific form when a specific button is pushed. Let me give you an example of when it is nice to have multiple subform controls, and keep them loaded. I have an application where the user is looking at and possibly updating a lot of different data about an insurance claim. There is a single form with about 20 tabs on a tab control. Each tab has its own subform control. The user clicks back and forth between the tabs. He looks at the claimant information, he looks at the policy information, he looks at the claim information, he looks at benefit checks paid, he looks back at... He sends email out to a doctor, or he prints a medical information request form from a doctor... Get the picture? He might have the claimant on the phone and just be answering questions, or he might be performing some process to the claim. In the end he is spending a long time in a given claim. Tabbing back and forth between the tabs and reloading the subforms isn't necessarily efficient. They are not moving back and forth between claims, in fact the form loads with a single claim loaded, and they cannot add or delete or move between CLAIM records. When the form loads, it does not load all of the subforms, in fact it does not load ANY subforms, all of which are out on separate tabs. However once a tab is clicked and a subform loads, I do not unload the subform. Why would I? It takes time to load and why cause the user to reload a form on a tab that he visited a few seconds ago? Keeping the subform loaded in no way slows down his work, in fact it speeds it up. As you can see, there are valid reasons for having multiple subform controls, multiple subforms loaded at the same time, and not unloading when the user moves to another tab. I went with JIT subforms with this form because it was taking a looooong time to load. Now it loads instantly, however each additional tab, ONCE CLICKED ON, keeps its subform loaded. I have been doing this exact kind of thing (JIT subforms on tabs of a tab control) since the late 90s. Support for it is embedded in my framework. I find a tab an efficient paradigm for handling multiple subforms. I can unload them if I want, and leave them loaded when I need. Makes sense to me! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Only one sub form is loaded at any one time. > > Max > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 September 2009 17:41 > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] JIT Subforms, was Merge rows (now: seriously OT) > > Do you have a single subform control? If so then you can't have 10 subform > controls and all of them > left bound. > > John W. Colby > www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 22 21:57:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 Sep 2009 22:57:39 -0400 Subject: [dba-VB] I'm baffled Message-ID: <4AB98EA3.9070806@colbyconsulting.com> I am trying to return a count of data items in a field of my table. When I directly execute the following I get a count: SELECT COUNT(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_code <> '') The count is 15675589. When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of records in the table. The SQL is: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (@fldname <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' As you can see everything is the same except @FldName which is being read out of a cursor of field names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to know why. Somehow I need to "translate" @FldName to the actual name of the field. What is the syntax to get what I need here? TIA, -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Sep 23 00:25:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 15:25:53 +1000 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Household_Occupation_Code is a fieldname (an object) @fldname is a string Your SP version evaluates to: SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ('Household_Occupation_Code' <> '')) rather than SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE (Household_Occupation_Code <> '')) To interpret the variable, you could build your query dynamically and then EXECute it in your SP. Something like: EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + 'FROM dbo.tblHSIDModified ' + 'WHERE (" + @fldsname + '<> ''''))' -- Stuart On 22 Sep 2009 at 22:57, jwcolby wrote: > I am trying to return a count of data items in a field of my table. When I directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' > > As you can see everything is the same except @FldName which is being read out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 01:06:50 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:06:50 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9239A.1010205@colbyconsulting.com>, <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg> Message-ID: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Hi Stuart, We're talking C#/VB.NET here? - try test code in P.S - =========== one billion =========== of bitwise AND operations for ============================ two 400 bits long bit arrays ============================ takes about ==================================== 1 minute 4 seconds 260 milliseconds ==================================== on my "mere mortals PC" - two years old Dual Core Pentium. Please correct me if you or anybody else here will find mistakes in my coding/testing results. Thank you. -- Shamil P.S. static void test1() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; values2[225] = true; values2[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:54:40.993 //09:55:44.733 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 } static void test2() { const long CYCLES_QTY = 1000000000; // 1 billion bool[] values1 = { true, false, false, true }; bool[] values2 = { false, true, false, true }; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); //09:52:32.604 //09:52:46.785 //0001 } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 1:48 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows The data storage requirements may be smaller, but the time required to perform multiple bitwise operation functions on every one of those 50 milllion rows is going to be a lot slower than using simple selection criteria on fields. -- Stuart On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > that will be BINARY(50) in T-SQL. > Although I'm not currently sure you can implement bitwise logical operations > solely using T-SQL: but I suppose you can get subset of data using > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > bitwise C# operations/functions over bit arrays. > > Something like that should work I suppose. > > Please correct me if I'm wrong. > > -- > Shamil <<< snip>>> __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 01:14:40 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:14:40 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB94057.3080704@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB7FEB8.6080403@colbyconsulting.com>, <4ab8025b.1c07d00a.02b5.1533@mx.google.com> <4AB80461.21356.18B49000@stuart.lexacorp.com.pg> <4ab80596.1c05d00a.4a1d.23f3@mx.google.com> <4AB8260C.7090402@colbyconsulting.com> <00ca01ca3b52$47041f50$d50c5df0$@spb.ru> <4AB8BF53.70902@colbyconsulting.com><00db01ca3b89$b1e677f0$15b367d0$@spb.ru> <4AB8D871.6060001@colbyconsulting.com> <4AB8EA7D.1080401@colbyconsulting.com> <00e401ca3b9c$ec9b0600$c5d11200$@spb.ru> <4AB8FBB0.3060904@colbyconsulting.com> <00f401ca3bb7$676c1170$36443450$@spb.ru> <4AB9239A.1010205@colbyconsulting.com> <00f501ca3bc1$65afafe0$310f0fa0$@spb.ru> <4AB932A2.6050301@colbyconsulting.com> <00fb01ca3bc8$63cabf10$2b603d30$@spb.ru> <4AB94057.3080704@colbyconsulting.com> Message-ID: <011001ca3c15$23a9f0c0$6afdd240$@spb.ru> Hi John, Yes, "balancing act" - the same story here. The answer is to subcontract an expert who will deliver (and will be paid full project price) only in the case they will produce agreed upon result. Then study and use their code to further tune your customer's application performance - and that way getting C# proficiency much faster than by self-education and trial & error (often throw-away) coding practice... -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 1:24 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, It is easy to say that but I am a single proprietor. If I do something that I don't charge then i lose my billable time. If I do something that doesn't work then do I bill the customer? Etc. Maybe for an hour's work but what about a week's work? I will likely do things like this over time. Test out the process on a portion of the database. Learn to use this method. But I am pretty fully booked as it is, with paying work. More efficient is good, EASY more efficient is VERY GOOD. Difficult more efficient may not be good at all. It's a balancing act. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > John, > > OK, someday you can make it working/flying using C# with your current DB > size "shrinked" ~8 times and your current processing time shortened X times > (to an order of magnitude? - wild guess)... > > ... but do not wait until you'll get fluent with C# - it's time consuming as > everybody's experience shows - and it's not needed to get the outlined above > results - just do it - how to do it seems to be clear now?... > > -- > Shamil > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, September 23, 2009 12:25 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Shamil, > > You are asking the wrong guy on this stuff. I am not fluent in SQL Server, > even with all that I do. > > Eventually I will be moving everything I can to c#, once I am fluent in c#. > For now I use stored > procedures for all of the actual order processing. > > The whole bit mask thing will definitely be "someday", with a big MAYBE. > > John W. Colby > www.ColbyConsulting.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From stuart at lexacorp.com.pg Wed Sep 23 01:19:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 16:19:21 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> Message-ID: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart On 23 Sep 2009 at 10:06, Shamil Salakhetdinov wrote: > Hi Stuart, > > We're talking C#/VB.NET here? - try test code in P.S - > > =========== > one billion > =========== > > of bitwise AND operations for > > ============================ > two 400 bits long bit arrays > ============================ > > takes about > > ==================================== > 1 minute 4 seconds 260 milliseconds > ==================================== > > on my "mere mortals PC" - two years old Dual Core Pentium. > > Please correct me if you or anybody else here will find mistakes in my > coding/testing results. > > Thank you. > > -- > Shamil > > P.S. > > > static void test1() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > values2[225] = true; > values2[399] = true; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > //09:54:40.993 > //09:55:44.733 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > } > > static void test2() > { > const long CYCLES_QTY = 1000000000; // 1 billion > bool[] values1 = { true, false, false, true }; > bool[] values2 = { false, true, false, true }; > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > //09:52:32.604 > //09:52:46.785 > //0001 > } > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 1:48 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > The data storage requirements may be smaller, but the time required to > perform multiple > bitwise operation functions on every one of those 50 milllion rows is going > to be a lot slower > than using simple selection criteria on fields. > > -- > Stuart > > > On 23 Sep 2009 at 0:15, Shamil Salakhetdinov wrote: > > > OK, so you can "pack" 400 boolean fields into 50 bytes long binary field - > > that will be BINARY(50) in T-SQL. > > Although I'm not currently sure you can implement bitwise logical > operations > > solely using T-SQL: but I suppose you can get subset of data using > > non-Boolean where clause, and then scan it in C#/VB.NET and filter using > > bitwise C# operations/functions over bit arrays. > > > > Something like that should work I suppose. > > > > Please correct me if I'm wrong. > > > > -- > > Shamil > <<< snip>>> > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From paul.hartland at googlemail.com Wed Sep 23 01:40:56 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Wed, 23 Sep 2009 07:40:56 +0100 Subject: [dba-VB] I'm baffled In-Reply-To: <4AB98EA3.9070806@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> Message-ID: <38c884770909222340m31f1155dw2784fab5a8f2422a@mail.gmail.com> John, Just an idea off the top of my head, have you tried enclosing the @fldname in brackets like below: DECLARE @DataCnt int SET @DataCnt = (SELECT count(PKID) as Cnt FROM dbo.tblHSIDModified WHERE ((@fldname) <> '')) PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data elements' Paul 2009/9/23 jwcolby > I am trying to return a count of data items in a field of my table. When I > directly execute the > following I get a count: > > SELECT COUNT(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_code <> '') > > The count is 15675589. > > When I try to do the "same thing" in a SP (to store the count) the count is > equal to the number of > records in the table. The SQL is: > > DECLARE @DataCnt int > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (@fldname <> '')) > > PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data > elements' > > As you can see everything is the same except @FldName which is being read > out of a cursor of field > names. It seems obvious that @fldname <> '' evaluates to true every > record. I don't know enough to > know why. > > Somehow I need to "translate" @FldName to the actual name of the field. > > What is the syntax to get what I need here? > > TIA, > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > -- Paul Hartland paul.hartland at googlemail.com From shamil at smsconsulting.spb.ru Wed Sep 23 01:54:42 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 10:54:42 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB94612.9143.1D9D2B20@stuart.lexacorp.com.pg>, <010f01ca3c14$0bfaaab0$23f00010$@spb.ru> <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg> Message-ID: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Hi Stuart, No problem. "BitArrays population magic" isn't a complicated task for John "DB from Hell". BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB from Hell" with 50 million records it will be 50 millions * 400 = 20 billion bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do expect that even "brute force crunching" will produce a kind of instantaneous results for the part of query where char "Y/N" columns are currently used. And once loaded in memory the info can be kept/updated there (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much IOW maybe there is no even a need to substitute in "DB from Hell" current char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... Please correct me if you find I'm wrong somewhere in my considerations/expectations/evaluations... Thank you. -- Shamil P.S. static void test3() { //const long CYCLES_QTY = 1000000000; // 1 billion const long CYCLES_QTY = 50000000; // 50 millions bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); values1[0] = true; values1[225] = true; values1[399] = true; System.Collections.BitArray bitTest1 = new System.Collections.BitArray(values1); System.Collections.BitArray bitTest2 = new System.Collections.BitArray(values2); for (int i = 0; i < 400; i++) bitTest2[i] = true; Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); for (long l = 1; l < CYCLES_QTY; l++) bitTest1.Xor(bitTest2); //bitTest1.Or(bitTest2); //bitTest1.And(bitTest2); Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); foreach (bool bit in bitTest1) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); // 50 millions - AND //10:32:56.772 //10:32:59.548 //10000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000100000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000000 //00000000000000000000000000000000000000000000000000000000000000000000000000 000001 // 50 millions - OR //10:34:27.644 //10:34:30.451 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 // 50 millions - XOR //10:35:27.414 //10:35:30.182 //01111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111011111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111111 //11111111111111111111111111111111111111111111111111111111111111111111111111 111110 Console.WriteLine(); foreach (bool bit in bitTest2) Console.Write("{0}", bit ? "1" : "0"); Console.WriteLine(); } -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 10:19 AM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Sorry, I was under the impression that we were talking about selecting rows from JC's "Database >From Hell", not just manipulating bit arrays which we have somehow magically populated without pulling data from SQL Server. -- Stuart __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From shamil at smsconsulting.spb.ru Wed Sep 23 02:19:48 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 11:19:48 +0400 Subject: [dba-VB] Useful information if you work with PropertyGrid, and not only with it... Message-ID: <011201ca3c1e$3d5beb00$b813c100$@spb.ru> Hi All, FYI: ICustomTypeDescriptor, Part 1 http://msdn.microsoft.com/en-us/magazine/cc163816.aspx ICustomTypeDescriptor, Part 2 http://msdn.microsoft.com/en-us/magazine/cc163804.aspx -- Shamil From stuart at lexacorp.com.pg Wed Sep 23 03:45:49 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 23 Sep 2009 18:45:49 +1000 Subject: [dba-VB] Merge rows In-Reply-To: <011101ca3c1a$bb87dce0$329796a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> Message-ID: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: Wednesday, September 23, 2009 10:19 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Merge rows > > Sorry, > > I was under the impression that we were talking about selecting rows from > JC's "Database > >From Hell", not just manipulating bit arrays which we have somehow > magically populated > without pulling data from SQL Server. > > > -- > Stuart > > > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4448 (20090922) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From shamil at smsconsulting.spb.ru Wed Sep 23 04:44:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 13:44:08 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> Message-ID: <000701ca3c32$673246e0$3596d4a0$@spb.ru> Stuart, I did mean that once loaded bit array will be kept "warm" in memory (John has enough memory for that). It's unclear what are the main type of queries of JC's customer (John can you clarify this issue?) - if that queries are to select a few thousand individual records as you suggest(?) and all the queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will outperform MS SQL, which (MS SQL) will have to scan the whole 50 million records, and "brute force bits crunching" will return a few thousand individual records IDs in ~3 seconds(?), and those IDs can then be used to select the records from the "DB from Hell" and apply the rest of the WHERE filtering criteria to select a subset; - if that queries are to select a few millions records and calculate some stats on them and all that queries include at least one "Y/N" field AND-end with the other part of WHERE filtering criteria then "brute force bits crunching" will again outperform MS SQL for bit operation, as for the other part of WHERE clause - it could be possible to use LINQ for Objects here if all the compacted records can be loaded in memory on huge JC's computer - and if that will be possible then LINQ for Objects (of just custom programming of selection criteria logic evaluation + counting stats) should let to outperform MS SQL I expect... Recap: it all depends on the type of the queries to run against "DB From Hell" - if 80-90% of them fit first or the second type of queries mentioned above then it does make sense for compacted records to use "brute force bits crunching" approach as it might result in considerable shortening of the time queries run. If it doesn't make any sense there will a query run within a minute or within one or a couple of hours then "brute force bits crunching" isn't needed there... Or do you have your queries already running over "DB from Hell" within a minute/several minutes, John? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, September 23, 2009 12:46 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows But do you think that the "brute force crunching" will gain more time than is lost in requiring SQL Server to pulling all 50 million records from the database, rather than letting SQL Server only pull the few thousand that you are interested in in the first place? -- Stuart On 23 Sep 2009 at 10:54, Shamil Salakhetdinov wrote: > Hi Stuart, > > No problem. "BitArrays population magic" isn't a complicated task for John > "DB from Hell". > > BTW, I have just run test code for 50 millions 400 bits bit arrays for OR, > AND and XOR bitwise operations - it takes less than 3 seconds, and for "DB > from Hell" with 50 million records it will be 50 millions * 400 = 20 billion > bits = ~2GB - all that can be loaded into memory for 64bits PCs, so, I do > expect that even "brute force crunching" will produce a kind of > instantaneous results for the part of query where char "Y/N" columns are > currently used. And once loaded in memory the info can be kept/updated there > (and in DB)(and back-up in 2GB+ binary file) as it's not changing that much > IOW maybe there is no even a need to substitute in "DB from Hell" current > char "Y/N" fields with Binary(...) or VarBinary(...) fields... etc... > > Please correct me if you find I'm wrong somewhere in my > considerations/expectations/evaluations... > > Thank you. > > -- > Shamil > > P.S. > > static void test3() > { > //const long CYCLES_QTY = 1000000000; // 1 billion > const long CYCLES_QTY = 50000000; // 50 millions > bool[] values1 = (bool[])Array.CreateInstance(typeof(bool), 400); > bool[] values2 = (bool[])Array.CreateInstance(typeof(bool), 400); > values1[0] = true; > values1[225] = true; > values1[399] = true; > > > System.Collections.BitArray bitTest1 = > new System.Collections.BitArray(values1); > System.Collections.BitArray bitTest2 = > new System.Collections.BitArray(values2); > > for (int i = 0; i < 400; i++) bitTest2[i] = true; > > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > for (long l = 1; l < CYCLES_QTY; l++) > bitTest1.Xor(bitTest2); > //bitTest1.Or(bitTest2); > //bitTest1.And(bitTest2); > Console.WriteLine("{0:HH:mm:ss.fff}", DateTime.Now); > > foreach (bool bit in bitTest1) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > > // 50 millions - AND > //10:32:56.772 > //10:32:59.548 > > //10000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000100000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000000 > > //00000000000000000000000000000000000000000000000000000000000000000000000000 > 000001 > > // 50 millions - OR > //10:34:27.644 > //10:34:30.451 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > // 50 millions - XOR > //10:35:27.414 > //10:35:30.182 > > //01111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111011111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111111 > > //11111111111111111111111111111111111111111111111111111111111111111111111111 > 111110 > > Console.WriteLine(); > foreach (bool bit in bitTest2) > Console.Write("{0}", bit ? "1" : "0"); > > Console.WriteLine(); > } > > > <<< snip >>> From jwcolby at colbyconsulting.com Wed Sep 23 07:36:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:36:19 -0400 Subject: [dba-VB] Merge rows In-Reply-To: <000701ca3c32$673246e0$3596d4a0$@spb.ru> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> Message-ID: <4ABA1643.9090201@colbyconsulting.com> Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Wed Sep 23 07:50:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 23 Sep 2009 08:50:22 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> Message-ID: <4ABA198E.8070600@colbyconsulting.com> Stuart, When I do that I get an error "must declare the scalar variable @DataCnt" John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Household_Occupation_Code is a fieldname (an object) > @fldname is a string > > Your SP version evaluates to: > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE ('Household_Occupation_Code' <> '')) > > rather than > > SET @DataCnt = (SELECT count(PKID) as Cnt > FROM dbo.tblHSIDModified > WHERE (Household_Occupation_Code <> '')) > > > To interpret the variable, you could build your query dynamically and then EXECute it in > your SP. Something like: > > EXEC 'SET @DataCnt = (SELECT count(PKID) as Cnt ' + > 'FROM dbo.tblHSIDModified ' + > 'WHERE (" + @fldsname + '<> ''''))' > > From shamil at smsconsulting.spb.ru Wed Sep 23 08:28:24 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 23 Sep 2009 17:28:24 +0400 Subject: [dba-VB] Merge rows In-Reply-To: <4ABA1643.9090201@colbyconsulting.com> References: <4AB7BBE0.6030807@colbyconsulting.com>, <4AB9BDE9.18933.1F714EEF@stuart.lexacorp.com.pg>, <011101ca3c1a$bb87dce0$329796a0$@spb.ru> <4AB9E03D.18701.1FF767CE@stuart.lexacorp.com.pg> <000701ca3c32$673246e0$3596d4a0$@spb.ru> <4ABA1643.9090201@colbyconsulting.com> Message-ID: <001201ca3c51$bb980480$32c80d80$@spb.ru> Hi John, Thank you for your reply. BTW, how much it takes in average to run a customer query using your current huge DB, and what size on disk does this DB occupy including all index files, how much RAM is needed, what are hard disks and CPU? Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, September 23, 2009 4:36 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] Merge rows Shamil, I have to say that the idea of simply adding a field or two or three to hold groups of these existing "Y" / "" fields makes the whole thing much more palatable. I have already written about the types of queries. It turns out there are currently 584 total fields in the database. One is the PK (long). The next 100 fields are fields that hold various codes such as name, age, gender, dates, income range and so forth. So there about 480 "Y"/"" fields. Specific fields in the first 100 fields are used a LOT. Income bracket, gender, age bracket, child age brackets. The client says "I need 2.5 million records WHERE..." (GENDER = 1 AND Income in (9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) AND ((Adults_25_34 in (1,3) OR Adults_35_44 in (1,3)) AND (Walking = Y OR Physical Exercise = Y OR Hunting = Y OR . . ) You can see a pattern here, they must fit in an Gender / age / income bracket AND They do, have, like, or own specific things. The part that you are discussing Shamil neatly falls into the Do, Have, Like or Own part of the query. To give a clue how I implement this, I actually have two queries. The first query implements the first part - age / income / gender. Sometimes also type of residence and the like. The second query implements the Do / Have / Like / Own select. I then JOIN on PKID those two queries to implement the AND between the two sets of selects. I then JOIN that on PKID to a query that pulls names / addresses from a separate table. The resulting data set may or may not have the required number of records. If not the client throws in other Do/Have/Like/Own fields to raise the number of records. Once we have enough to fill the order then I select the TOP(N) records ordered by random number field and ship the resulting names / addresses. As you can see, you are proposing replacing the Do/Have/Like/Own query with custom binary processing. In the end we have to get back to a recordset inside of SQL Server that can be JOINED on the PKID so that we can pull data from people table, so the end result would be a table written back out to the database with the PKIDs of the records that match the array manipulation. You are of course correct, the in memory processing of the binary array would be lightning fast, and that could be left in memory forever. The "left in memory forever" doesn't really do me any good though since I process anywhere from one or two orders a month to one or two a week, usually one a week or less. Given that these servers use considerable juice, I also tend to turn them off unless they are in use. That said, loading the array one time would be pretty fast anyway I suspect, way faster than the whole process of defining indexes if there isn't one for the required fields, creating the indexes, and then processing that second query. I wouldn't say this isn't doable. I would say it is not a trivial task / development effort. If I processed a dozen orders a day it would be a no brainer to investigate doing this. For a once a week process it becomes less so. I like the sounds of it. No indexes for that entire section of the table. Multi-second response for that section of the queries. The benefits would indeed be awesome, but it would take a long time to pay back the development cost. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Stuart, > > I did mean that once loaded bit array will be kept "warm" in memory (John > has enough memory for that). > > It's unclear what are the main type of queries of JC's customer (John can > you clarify this issue?) > > - if that queries are to select a few thousand individual records as you > suggest(?) and all the queries include at least one "Y/N" field AND-end with > the other part of WHERE filtering criteria then "brute force bits crunching" > will outperform MS SQL, which (MS SQL) will have to scan the whole 50 > million records, and "brute force bits crunching" will return a few thousand > individual records IDs in ~3 seconds(?), and those IDs can then be used to > select the records from the "DB from Hell" and apply the rest of the WHERE > filtering criteria to select a subset; > > - if that queries are to select a few millions records and calculate some > stats on them and all that queries include at least one "Y/N" field AND-end > with the other part of WHERE filtering criteria then "brute force bits > crunching" will again outperform MS SQL for bit operation, as for the other > part of WHERE clause - it could be possible to use LINQ for Objects here if > all the compacted records can be loaded in memory on huge JC's computer - > and if that will be possible then LINQ for Objects (of just custom > programming of selection criteria logic evaluation + counting stats) should > let to outperform MS SQL I expect... > > Recap: it all depends on the type of the queries to run against "DB From > Hell" - if 80-90% of them fit first or the second type of queries mentioned > above then it does make sense for compacted records to use "brute force bits > crunching" approach as it might result in considerable shortening of the > time queries run. > If it doesn't make any sense there will a query run within a minute or > within one or a couple of hours then "brute force bits crunching" isn't > needed there... > > Or do you have your queries already running over "DB from Hell" within a > minute/several minutes, John? > > Thank you. > > -- > Shamil _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4449 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From fuller.artful at gmail.com Wed Sep 23 08:42:14 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 23 Sep 2009 09:42:14 -0400 Subject: [dba-VB] [dba-SQLServer] I'm baffled In-Reply-To: <4ABA198E.8070600@colbyconsulting.com> References: <4AB98EA3.9070806@colbyconsulting.com> <4AB9B161.16652.1F405BD9@stuart.lexacorp.com.pg> <4ABA198E.8070600@colbyconsulting.com> Message-ID: <29f585dd0909230642r539e524agb698acd26bc36c9b@mail.gmail.com> I tried this approach on one of my own databases and it worked just fine. Given the differences in tables, I did a NOT NULL but that is beside the point I think. Here is my sproc and an example call: IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE SPECIFIC_SCHEMA = N'BOM' AND SPECIFIC_NAME = N'ap_CountByField' ) DROP PROCEDURE BOM.ap_CountByField GO CREATE PROCEDURE BOM.ap_CountByField @fld_name varchar(100) AS SELECT COUNT(*) FROM BOM.AssemblyComponents WHERE @fld_name IS NOT NULL GO -- ============================================= -- Example to execute the stored procedure -- ============================================= EXECUTE BOM.ap_CountByField 'AssemblyComponentID' GO hth, Arthur From shamil at smsconsulting.spb.ru Wed Sep 23 16:56:43 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Thu, 24 Sep 2009 01:56:43 +0400 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) In-Reply-To: <00f601ca3bc8$62896570$279c3050$@spb.ru> References: <00f601ca3bc8$62896570$279c3050$@spb.ru> Message-ID: <004301ca3c98$bdeaaed0$39c00c70$@spb.ru> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management -Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4448 (20090922) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru __________ Information from ESET NOD32 Antivirus, version of virus signature database 4451 (20090923) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Thu Sep 24 05:50:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 24 Sep 2009 12:50:41 +0200 Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Message-ID: Hi Shamil It could be interesting to have a small report from you as you proceed! But the course itself - as described in the right column on the link you provided - isn't it well below your current skills? /gustav >>> shamil at smsconsulting.spb.ru 23-09-2009 23:56 >>> OK. I have got enrolled for the subject course. Looks simple so far, but I have got already learned some new features therefore it should be helpful and hopefully worth time and money spent. And it looks well organized. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Wednesday, September 23, 2009 1:05 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: [dba-VB] ExpertRating Online C# Programming Course (Intermediate) Hi All, Could you please advise does it make sense to get the subject certification to formally qualify/compete for some jobs/projects there on the West side? http://www.expertrating.com/certifications/InstructorLed/Database-Management-Programming/C-Sharp-Programming-Intermediate/C-Sharp-Programming-Intermedia te.asp Or such certifications are corrupted/not reliable there? Have you seen somewhere Advanced online certifications for C#? Thank you. -- Shamail From jwcolby at colbyconsulting.com Mon Sep 28 10:19:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:19:09 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <200909241755.n8OHtqPB016788@databaseadvisors.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> Message-ID: <4AC0D3ED.2060201@colbyconsulting.com> Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Sep 28 10:44:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 11:44:22 -0400 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4AC0D9D6.9080600@colbyconsulting.com> I just managed to Alt-Tab back to Management studio, and that application is updating the screen again (though not the cursor movement). the little "Executing query" icon is rotating, and the query timer is counting up the seconds (01:47:08 ATM). I just discovered (on my laptop) the set IO affinity setting in SQL Server which I did not set. No idea what that does for me but I wonder if that being assigned to SQL Server for all processors could be part of the problem. John W. Colby www.ColbyConsulting.com jwcolby wrote: > Well I thought that assigning three processors to the SQL Server software was the answer, and it in > fact did make a difference in some cases, but there is still something happening that "locks up" the > server. IO started a long running update query going this morning and immediately afterwards I was > able to move around, look at other stuff. Then I went away to do other things. When I came back it > was "locked up" - with the Management studio application full screen, and the cursor immovable. Of > course I thought it was locked up, and I have always believed that it was literally never going to > come back. > > I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I > was at Windows Explorer, not Management Studio. So the machine is in fact responding, but > glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to > another machine the cursor is moving just fine, when I move back to this machine it is locked up. > However the cursor changed from the insertion pointer icon to the arrow icon when i switched from > Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is > just responding glacially. > > This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged > three of the processors when it began processing the query so I am comfortable that it in fact is > correctly using just three processors. > > So what is happening that would so completely freeze up the server that the cursor won't even move? > > Weird. > > Has anyone else out there ever experienced this? Found a solution? > > John W. Colby > www.ColbyConsulting.com > > _______________________________________________ > dba-SQLServer mailing list > dba-SQLServer at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver > http://www.databaseadvisors.com > > From max.wanadoo at gmail.com Mon Sep 28 11:00:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 28 Sep 2009 17:00:28 +0100 Subject: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive In-Reply-To: <4AC0D3ED.2060201@colbyconsulting.com> References: <200909241755.n8OHtqPB016788@databaseadvisors.com> <4AC0D3ED.2060201@colbyconsulting.com> Message-ID: <4ac0ddb1.0508d00a.4dcd.012c@mx.google.com> If it is responding, then Ctrl-Alt-Delete to Task Manager and click on processes to sort them and see what process is taking the ticks. There are other *thread* software around mentioned here before which gives more granularity of the processes. Max -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 28 September 2009 16:19 To: Discussion concerning MS SQL Server; VBA; Access Developers discussion and problem solving Subject: Re: [dba-VB] [dba-SQLServer] HELP, server completely unresponsive Well I thought that assigning three processors to the SQL Server software was the answer, and it in fact did make a difference in some cases, but there is still something happening that "locks up" the server. IO started a long running update query going this morning and immediately afterwards I was able to move around, look at other stuff. Then I went away to do other things. When I came back it was "locked up" - with the Management studio application full screen, and the cursor immovable. Of course I thought it was locked up, and I have always believed that it was literally never going to come back. I just happened to to an Alt-Tab, then went off to my lap top to do other stuff. When I came back I was at Windows Explorer, not Management Studio. So the machine is in fact responding, but glacially. The mouse cursor is locked up, cannot be moved. I use a KVM switch, and when I move to another machine the cursor is moving just fine, when I move back to this machine it is locked up. However the cursor changed from the insertion pointer icon to the arrow icon when i switched from Management Studio to Windows Explorer, so again the machine is definitely not unresponsive, it is just responding glacially. This time I have SQL Server assigned three processors, and I was observing that SQL Server pegged three of the processors when it began processing the query so I am comfortable that it in fact is correctly using just three processors. So what is happening that would so completely freeze up the server that the cursor won't even move? Weird. Has anyone else out there ever experienced this? Found a solution? John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:04:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:04:39 -0400 Subject: [dba-VB] c# text box changed event Message-ID: <4AC16B37.2000605@colbyconsulting.com> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com From michael at ddisolutions.com.au Mon Sep 28 21:09:12 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:09:12 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Hi John, Is the control bound? Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:05 PM To: VBA Subject: [dba-VB] c# text box changed event I am setting the text in a text box via code which is causing the TextChanged event to fire. I want the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by code. Is there a change event that fires for manual editing but not by code editing? -- John W. Colby www.ColbyConsulting.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Sep 28 21:26:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 28 Sep 2009 22:26:22 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> Message-ID: <4AC1704E.1000201@colbyconsulting.com> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > From michael at ddisolutions.com.au Mon Sep 28 21:32:23 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 12:32:23 +1000 Subject: [dba-VB] c# text box changed event References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582474@ddi-01.DDI.local> How about KeyDown, Leave combinations then? When keydown is fired set dirty, When leave fires on a dirty control 'save' the data. Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, 29 September 2009 12:26 PM To: Discussion concerning Visual Basic and related programming issues. Subject: Re: [dba-VB] c# text box changed event No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the > TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not > for changing the data by > code. Is there a change event that fires for manual editing but not by > code editing? > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Mon Sep 28 22:33:42 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Tue, 29 Sep 2009 13:33:42 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From Gustav at cactus.dk Tue Sep 29 05:04:51 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 12:04:51 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! Anyway, I had the same issue and worked out this very simple method: private void textBoxName_TextChanged(object sender, EventArgs e) { TextBox textBox = (TextBox)sender; if (textBox.Focused) { Console.WriteLine(textbox.Text); } } /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> No. I am doing a homework assignment where I collect grades in classes, and then move back and forth through the classes. I have chosen to use a shared text box where the grade classes display their grades, and the user enters new grades. John W. Colby www.ColbyConsulting.com Michael Maddison wrote: > Hi John, > > Is the control bound? > > Cheers > > Michael M > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, 29 September 2009 12:05 PM > To: VBA > Subject: [dba-VB] c# text box changed event > > I am setting the text in a text box via code which is causing the TextChanged event to fire. I want > the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by > code. Is there a change event that fires for manual editing but not by code editing? From jdthree at frontiernet.net Tue Sep 29 06:50:22 2009 From: jdthree at frontiernet.net (Jim DeMarco) Date: Tue, 29 Sep 2009 07:50:22 -0400 Subject: [dba-VB] XML LINQ Help! In-Reply-To: <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com> <59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> Message-ID: <003c01ca40fb$07061ad0$15125070$@net> Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Sep 29 08:14:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:14:31 -0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <4AC20837.2090004@colbyconsulting.com> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 08:45:00 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 15:45:00 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? From jwcolby at colbyconsulting.com Tue Sep 29 08:58:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 29 Sep 2009 09:58:02 -0400 Subject: [dba-VB] SPAM-LOW: Re: c# text box changed event In-Reply-To: References: Message-ID: <4AC2126A.2070301@colbyconsulting.com> Gustav, > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. I keep good company I suppose? I never used c# in the past, only vb.net. The syntax is different enough that it requires at least some study. I use the class to force myself to put in the hours. As a professional developer it is easy to get sidetracked and not do the study, especially when you have no paying work to keep you in the area. Plus theoretically it provides me another place to ask questions, interface with others working in the language etc. I plan on doing this and the next level class, at which point I will be most of the way through the book and hopefully well on my way. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. > > As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. > This: > > TextBox textBox = (TextBox)sender; > > does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: > > CheckBox checkBox = (CheckBox)sender; > > What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> > Gustav, > > > Are we allowed to help with homework? > > LOL. > > The homework does not involve classes, collections, or even the messagebox (all used in my version > of the homework) because we don't even get to that until next semester. I am just trying to > entertain myself and learn something beyond "how does the string object work". > > This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on > chapter 4 - How to work with numeric and string data. > > That is a cool method of discovering the source of the change event. I have too admit though that I > don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't > we error if this is not a text box type? And whatever caused the change has the focus, so why > doesn't the object (once cast) always say that it has the focus? > > I'm confused. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! >> >> Anyway, I had the same issue and worked out this very simple method: >> >> >> private void textBoxName_TextChanged(object sender, EventArgs e) >> { >> TextBox textBox = (TextBox)sender; >> if (textBox.Focused) >> { >> Console.WriteLine(textbox.Text); >> } >> } >> >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> >> No. I am doing a homework assignment where I collect grades in classes, and then move back and >> forth through the classes. I have chosen to use a shared text box where the grade classes display >> their grades, and the user enters new grades. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Michael Maddison wrote: >>> Hi John, >>> >>> Is the control bound? >>> >>> Cheers >>> >>> Michael M >>> >>> -----Original Message----- >>> From: dba-vb-bounces at databaseadvisors.com >>> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Tuesday, 29 September 2009 12:05 PM >>> To: VBA >>> Subject: [dba-VB] c# text box changed event >>> >>> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >>> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >>> code. Is there a change event that fires for manual editing but not by code editing? > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Sep 29 10:01:08 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 29 Sep 2009 17:01:08 +0200 Subject: [dba-VB] XML LINQ Help! Message-ID: Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M From shamil at smsconsulting.spb.ru Tue Sep 29 14:47:33 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Tue, 29 Sep 2009 23:47:33 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <009e01ca413d$b17425b0$145c7110$@spb.ru> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, September 29, 2009 5:45 PM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi John So you and Shamil have joined a club recapturing your knowledge at beginner's level? Interesting. As for the code, in my scenario it worked because the textbox never had focus when browsing records; focus was at a button or a toolbar or previously moved off the textbox by some other code. On the other hand, if the user types into to textbox it will have focus. This: TextBox textBox = (TextBox)sender; does nothing more than casting the sender object to a variable of type TextBox without using the name of the textbox control making it easier to copy and paste the code to other textboxes. For other types of controls you will need to adjust the code, say: CheckBox checkBox = (CheckBox)sender; What confuses us it, that "changed" here is different from Access. Here it happens whenever the data (text) displayed in the textbox changes - manually or when browsing records. In Access it only happens when the user types into the textbox. /gustav >>> jwcolby at colbyconsulting.com 29-09-2009 15:14 >>> Gustav, > Are we allowed to help with homework? LOL. The homework does not involve classes, collections, or even the messagebox (all used in my version of the homework) because we don't even get to that until next semester. I am just trying to entertain myself and learn something beyond "how does the string object work". This is a first semester C# programming class. We use Murach's C# 2008, and we are currently on chapter 4 - How to work with numeric and string data. That is a cool method of discovering the source of the change event. I have too admit though that I don't fully understand it. It seems that you are casting the sender to a textbox type? Why don't we error if this is not a text box type? And whatever caused the change has the focus, so why doesn't the object (once cast) always say that it has the focus? I'm confused. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > Are we allowed to help with homework? Some forums explicitly prohibits this! The idea behind homework - ask your teacher - is quite often that you are supposed to work out a solution by yourself as a challenge for your - eh - limited resources! > > Anyway, I had the same issue and worked out this very simple method: > > > private void textBoxName_TextChanged(object sender, EventArgs e) > { > TextBox textBox = (TextBox)sender; > if (textBox.Focused) > { > Console.WriteLine(textbox.Text); > } > } > > > /gustav > > >>>> jwcolby at colbyconsulting.com 29-09-2009 04:26 >>> > No. I am doing a homework assignment where I collect grades in classes, and then move back and > forth through the classes. I have chosen to use a shared text box where the grade classes display > their grades, and the user enters new grades. > > John W. Colby > www.ColbyConsulting.com > > > Michael Maddison wrote: >> Hi John, >> >> Is the control bound? >> >> Cheers >> >> Michael M >> >> -----Original Message----- >> From: dba-vb-bounces at databaseadvisors.com >> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Tuesday, 29 September 2009 12:05 PM >> To: VBA >> Subject: [dba-VB] c# text box changed event >> >> I am setting the text in a text box via code which is causing the TextChanged event to fire. I want >> the event to fire for a manual edit so I can set a dirty flag, but not for changing the data by >> code. Is there a change event that fires for manual editing but not by code editing? __________ Information from ESET NOD32 Antivirus, version of virus signature database 4468 (20090929) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From michael at ddisolutions.com.au Tue Sep 29 18:32:21 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:32:21 +1000 Subject: [dba-VB] XML LINQ Help! References: <4AC16B37.2000605@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582473@ddi-01.DDI.local> <4AC1704E.1000201@colbyconsulting.com><59A61174B1F5B54B97FD4ADDE71E7D01582477@ddi-01.DDI.local> <003c01ca40fb$07061ad0$15125070$@net> Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247C@ddi-01.DDI.local> Thanks Jim, Going through the docs on MSDN http://msdn.microsoft.com/en-us/library/bb675196.aspx they do it slightly differently... XmlReader r = XmlReader.Create ( @path ); while ( r.NodeType != XmlNodeType.Element ) r.Read ( ); XElement e = XElement.Load ( r ); IEnumerable attList = from att in e.Elements ( ).Attributes ( "MID" ) //where (string) att.Value == "SR_20090929" //this works select att; foreach ( XAttribute att in attList ) { Console.WriteLine ( att.Value ); } Maybe they used a XmlReader just to demonstrate its use? Havn't found a best practices yet. When I suss out how to enumerate the races I'll post back. Cheers Michael M Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From michael at ddisolutions.com.au Tue Sep 29 18:51:52 2009 From: michael at ddisolutions.com.au (Michael Maddison) Date: Wed, 30 Sep 2009 09:51:52 +1000 Subject: [dba-VB] XML LINQ Help! References: Message-ID: <59A61174B1F5B54B97FD4ADDE71E7D0158247D@ddi-01.DDI.local> Hi Gustav, I considered dumping the lot into a dataset but at the moment the end result is supposed to be xml to be loaded into Excel. And you are also correct that I don't need to load from a file. The web service methods returns XmlElement, I wrote it out to a xmlDocument for my convienience. The client was going to handle the Excel side but is now having second thoughts :-) So now I'm looking at extracting just the data needed and exposing to Excel as Arrays. I think that will make it easier to control in Excel, if anyone has other suggestions I'm all ears. Cheers Michael M Hi Michael Don't know about XElement, but why not replicate the schema in a DataSet? Method ReadXmlSchema does that while method ReadXml reads the data. But aren't you reading the data directly from the web service? You should not need to store them as an XML file first. I don't have code at hand and have not played with this yet, so I may be wrong. /gustav >>> michael at ddisolutions.com.au 29-09-2009 05:33 >>> Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. HAWKESBURY (NSW) R 9 GOOD FINE MADE JEWELLERY F&M MDN HCP 1400m 13 12:10 +02:35:19 Betting Open //more I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From Gustav at cactus.dk Wed Sep 30 02:31:22 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 09:31:22 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil From shamil at smsconsulting.spb.ru Wed Sep 30 05:30:08 2009 From: shamil at smsconsulting.spb.ru (Shamil Salakhetdinov) Date: Wed, 30 Sep 2009 14:30:08 +0400 Subject: [dba-VB] c# text box changed event In-Reply-To: References: Message-ID: <00c401ca41b8$fd3ece20$f7bc6a60$@spb.ru> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil __________ Information from ESET NOD32 Antivirus, version of virus signature database 4469 (20090930) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru From Gustav at cactus.dk Wed Sep 30 06:43:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 30 Sep 2009 13:43:21 +0200 Subject: [dba-VB] c# text box changed event Message-ID: Hi Shamil Thanks. That requires less code for each control which is a good thing. However, it doesn't address the issue I had when browsing records in formview with bound textboxes. Perhaps both methods should be combined? I think we miss an event: UserChangedText /gustav >>> shamil at smsconsulting.spb.ru 30-09-2009 12:30:08 >>> Hi Gustav, My method isn't clever - it's just dummy straightforward and simple, but I never needed something more complicated within the .NET applications I have developed. For example, if I wanted to block TextChanged event to be fired during form Load event when I'm setting in code a TextBox .Text property value from saved options file then in the beginning of the Form_Load method I have: private bool _loadInProgress; ... Form_Load(...) { try { _loadInProgress = true ... and I in the end of Form_Load method I have: ... finally { loadInProgress = false } - try/catch/finally will always guarantee my flag will not be left in "On" state. And in TextBox's TextChanged or CheckBox's CheckedChanged (and similar) events, which fired both when corresponding controls' properties set via UI and code I have: ..._TextChanged(...) if (_loadInProgress) return; ... That's it. --Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, September 30, 2009 11:31 AM To: dba-vb at databaseadvisors.com Subject: Re: [dba-VB] c# text box changed event Hi Shamil OK, sorry, "intermediate" is of course not "beginner" ... and I believe you are right about that you can always learn something new when explained a second time in another way than the first time, indeed if that was several years ago. As for the subject, couldn't you elaborate a bit on "I'd use context custom flag variables"? I really feel my method is rather a work-around, but at the time I just didn't have the time to work out a more clever method. /gustav >>> shamil at smsconsulting.spb.ru 29-09-2009 21:47:33 >>> Hi Gustav, The course I'm taking is called "Intermediate C#". :) I just didn't find "advanced" or "guru" course - and therefore I have taken the most complicated one. Yes, it's easy but I must admit I've learned some new stuff after the first four lessons - mainly by developing simple on first glance assignments. So it's not waste of time or money. And I like the way they introduce C# to beginners/intermediate level developers. I'm learning how they do that. Maybe one day I will go tutoring/coaching C#. And certificate they give - it can bring some new projects to me. And if that course will prove it's worth USD99 I spent on it I will take some other courses from them in the new areas to me. BTW, for the subject task I'd use context custom flag variables. Thank you. -- Shamil