Active TopicsActive Topics  Display List of Forum MembersMemberlist  Search The ForumSearch  HelpHelp
  RegisterRegister  LoginLogin
PowerHome General
 PowerHome Messageboard : PowerHome General
Subject Topic: SQL Qn Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
jeffw_00
Super User
Super User


Joined: June 30 2007
Online Status: Offline
Posts: 929
Posted: December 13 2007 at 21:42 | IP Logged Quote jeffw_00

Hi - I would like to find a way (preferably something I can write as a macro), that writes out the SQL for the macros, timed events, triggers, and (ideally) devices.

Here's why - I'd really like a way to textually "diff" two databases. It's a great way to

1) review your changes after you make some, the diff will show only your edits.

2) see what changes I made on a certain day, by comparing backup files.

Just wondering if there's an SQL statement to do the whole caboodle at once.

thanks!
/j
Back to Top View jeffw_00's Profile Search for other posts by jeffw_00
 
jeffw_00
Super User
Super User


Joined: June 30 2007
Online Status: Offline
Posts: 929
Posted: December 25 2007 at 14:23 | IP Logged Quote jeffw_00

bump? (I think Dave is away this week...)
/j
Back to Top View jeffw_00's Profile Search for other posts by jeffw_00
 
dhoward
Admin Group
Admin Group
Avatar

Joined: June 29 2001
Location: United States
Online Status: Offline
Posts: 4447
Posted: December 30 2007 at 21:11 | IP Logged Quote dhoward

Jeff,

Ive looked at this and can think of no good way to do this as a macro. You could of course use the multi-editor in SQL mode and select each of the tables one by one to create the reports and then use the File "Export" to save as type SQL. No way to do this automatically though unless you wanted to try and send keystrokes to the PowerHome application itself to duplicate the steps you'd do manually. Probably doable, but no easy feat.

However, after looking at your requirements, I think it can be done. The saved database wouldnt be in SQL format however and would instead be an HTML table. Still text data that could be compared and diffed. If you're interested, this is the way you'd do it.

Code:

insert into macroheader values ('DBEXPORT','DB Export',0,0,1);
insert into macrodetail values ('DBEXPORT',1,15,'[LOCAL2]',NULL,'string(today(),"yyyy-mm-dd")',0,'');
insert into macrodetail values ('DBEXPORT',2,15,'[LOCAL3]',NULL,'1',0,'');
insert into macrodetail values ('DBEXPORT',3,26,'',NULL,'LOOP',0,'');
insert into macrodetail values ('DBEXPORT',4,15,'[LOCAL1] ',NULL,'ph_regexdiff1(",",",",",macroheader,macrodetail,inst eondevices,exit,",1,[LOCAL3],0,0,0)',0,'');
insert into macrodetail values ('DBEXPORT',5,16,'',NULL,'if("[LOCAL1]" = "exit",999,1)',0,'');
insert into macrodetail values ('DBEXPORT',6,38,'',0,'ph_sqlselect(1,"select * from [LOCAL1] order by 1,2") + ph_writefile("[LOCAL2].htm",0,ph_gethtmldata(1)) + ph_sqldestroy(1) + ph_addtovar(1,3,1)',0,'');
insert into macrodetail values ('DBEXPORT',7,27,'',NULL,'"LOOP"',0,'');


Since the forum has a tendency to dork up SQL, Ive also attached the above macro as an attachment 2007-12-30_211007_dbexport.txt

As you can see, Ive only included 3 tables in the sample but you can add others as you see fit. The important thing is to make sure that the string that contains the table names begins and ends with a comma with each table separated by a comma.

Hope this helps,

Dave.
Back to Top View dhoward's Profile Search for other posts by dhoward Visit dhoward's Homepage
 
jeffw_00
Super User
Super User


Joined: June 30 2007
Online Status: Offline
Posts: 929
Posted: December 30 2007 at 21:13 | IP Logged Quote jeffw_00

thanks Dave - I'll give it a try
/j
Back to Top View jeffw_00's Profile Search for other posts by jeffw_00
 
jeffw_00
Super User
Super User


Joined: June 30 2007
Online Status: Offline
Posts: 929
Posted: December 30 2007 at 22:15 | IP Logged Quote jeffw_00

Hi Dave - this works great. Although... (8-}) is it just as easy to write plain text as HTML?    Not to complain, but the HTML source is rather heavy (for example, I added one comment to one macro and it added about 7 lines of HTML....).

If it's not trivial to write plain text, I can convert it externally.

THANKS!
/j
Back to Top View jeffw_00's Profile Search for other posts by jeffw_00
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

  Post ReplyPost New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum