Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: ado file |
Date | Mon, 13 Aug 2012 17:13:52 +0100 |
In your case, what is important is the difference between the program and the .ado file that defines it. 1. First time you type -dd-, Stata looks for a command -dd- that it knows about, doesn't find one, but does find an .ado file -dd.ado-. So it runs -dd.ado- and what happens is that clear Data are -clear-ed. program dd ... end Program -dd- is defined to Stata. 2. Second time you type -dd, Stata looks for a command -dd- that it knows about, but this time it does find one. You just defined -dd- by a series of commands starting with -program- and ending with -end-. But this time there is no -clear-. There are at least two takes on what you could do. One is that you could revise your program -dd- so that -clear- is included in the program. Another is that this is an example of premature programming, defined as writing a program that isn't needed. There is almost no generality in your program and it might as well be a do-file with arguments. But then again there is no harm done either. Nick On Mon, Aug 13, 2012 at 4:48 PM, tashi lama <ltashi32@hotmail.com> wrote: > > I am writing a simple ado-file where I am generating a dataset using sql query and listing the variable using syntax command. Here is my code > clear > program dd > qui odbc query indigo_dev71 > odbc load, exec("select date(read_date) as date, count(*) as hits from readership where source_id=6429 and date(read_date) between '2011-01-01' and '2011-01-20' group by date(read_date)") > syntax [varlist] > list `varlist' > end > exit > > when I execute ado file .dd date hits > date hits | > |------------------| > 1. | 01jan2011 127 | > 2. | 02jan2011 315 | > 3. | 03jan2011 4438 | > 4. | 04jan2011 3978 | > 5. | 05jan2011 3896 | > |------------------| > 6. | 06jan2011 4981 | > 7. | 07jan2011 4310 | > 8. | 08jan2011 540 | > 9. | 09jan2011 567 | > 10. | 10jan2011 5572 | > |------------------| > 11. | 11jan2011 4261 | > 12. | 12jan2011 4184 | > 13. | 13jan2011 4218 | > 14. | 14jan2011 4894 | > 15. | 15jan2011 1113 | > |------------------| > 16. | 16jan2011 343 | > 17. | 17jan2011 1154 | > 18. | 18jan2011 3981 | > 19. | 19jan2011 5669 | > 20. | 20jan2011 3685 | > > Great. But when I run second time .dd date > Stata returns you must start with an empty dataset. I have a "clear" command at the top of my adofile to start with a fresh memory. Could someone please explain? Also, does adofile name have to be identical to the program name? Meaning, my program name here is dd. Do I have to have a adofile dd.ado? If they could be different, how do I execute? * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/