Click here to Skip to main content
Click here to Skip to main content

SQL Editor for Database Developers

By , 10 Mar 2010
 

Features

SqlBuilder is a very useful, powerful and intelligent C# tool for all developers and teams, which works with databases.

  • SqlBuilder makes working on SQL servers much easier.
  • One of the multiple intentions of SqlBuilder is to completely replace the user unfriendly Microsoft SQL server tools Query Analyzer and Enterprise Manager.
  • SqlBuilder has a complicated Syntax Parser, which does not only display SQL commands in color but also automatically converts badly written SQL code into readable code. Long SQL commands like SELECT are wrapped automatically in an intelligent way onto multiple lines and are indented. The parsing happens while entering text. Normally you have to pay a lot of money for this functionality.
  • SqlBuilder reads automatically stored procedures, views, functions and triggers from the server and allows to edit and store them.
  • SqlBuilder offers a complex Table Editor which allows to change values in table cells as easy as modifying an Excel sheet.
  • The Table Editor allows to add / remove columns and to add / delete rows.
  • The comfortable Table Designer shows Foreign Keys and Identity values, allows to add / remove Primary and Unique keys, Indexes, modify a column's data type, NULL, Default value.
  • SQL commands can be executed and the query result is displayed as a scalar value or as one or multiple tables.
  • With CTRL+E you can execute the selected part of the SQL code or, if nothing is selected, the entire code.
  • Each file or system object / file has its own Undo buffer which maintains its content even if you edited another file meanwhile.
  • All procedures, views, functions, triggers and table definitions can be saved in seconds as *.sql files into one folder. (DataBase Backup)
  • You can search for a text string in all procedures, views, functions, triggers and table columns directly on the server. (DataBase Search)
  • SqlBuilder was designed for developer teams to store in Subversion or CVS, the procedures, functions etc., that have been changed on the server since the last release and then automatically create ONE huge Compound SQL script for the next release, which is given to the client to execute to update his server. With one click, you create a file which stores all your work since the last release.
  • SqlBuilder measures the time of execution of an SQL command with an exactness of 1 ms. So you can compare the speed of different SQL commands / procedures to optimize your code.
  • Additionally with CTRL+B, you can first clear the server cache (DBCC FREEPROCCACHE ...) and then execute the SQL command. So you can measure the time an SQL command needs when it is first executed before the server has cached query results. The difference may be a factor of 1:10 or more!
  • You can execute two SELECT or EXECUTE queries at the same time which return a dataset with 2 tables and then compare the 2 query results for exact equality. SqlBuilder will tell you if the two results differ even if the lines in the tables appear in a different order. If you wish, SqlBuilder can remove all equal lines from the tables and leave only the different ones. So you can check after a modification you have made on a procedure if it still returns the same data as before.
  • You can export query results and tables into an HTML file or an Excel sheet or as an XML file.
  • You can export table data to a XML file and import table data from a XML file.
  • If you have not yet assigned a program for *.sql files, in the future SQL files will open in SqlEditor. If you have already assigned a default program for SQL files, this will not be changed but in the context menu of Explorer (right click on a file) you will find a new entry "Open with SqlBuilder".
  • The very first time you start SqlBuilder, it will add a shortcut to itself in the startmenu and in the quicklaunch bar. If you don't want that, simply delete the shortcut: this will not happen again.
  • The SQL editor and Table editor can be controled completely via keyboard. (See button "Keyboard Help")
  • The entire SQL execution runs in a separate (abortable) thread so the GUI does not "hang" while you execute lengthy commands.
  • This is a living project. The Internet Update Check will show you a messagebox if a new SqlBuilder version is available on my homepage.

Limitations

  • .NET Framework 1.1 must be installed.
  • I have not tried to compile SqlBuilder on Visual Studio 2005. As Microsoft has never cared about compatibility with older versions of their own software, it may be possible that you have to change some code? It is your own fault if you don't compile on Visual Studio 2003 where it runs perfectly!
  • The program was written for Microsoft SQL server. For Oracle or other SQL servers you will have to adapt three *.cs files of the source code which are the abstraction layer which contains the server specific code.

Source Code

Although the source code is VERY complex, you will find a VERY clean and well structured code with plenty of comments written by a very experienced programmer.
(Coding effort: more than half a year!)

Usage

Suppose that you work on a project with multiple release versions of which each has its own folder on your local disk. Choose the folder of the current release in your server project. SqlBuilder will create two subfolders in the working directory: DatabaseBackup and Scripts.

SqlBuilder stores an XML file in the working directory with the server settings (server name, user name, password, etc.) If you work with multiple SQL servers, create a working directory for each server.

It is strongly recommended to ALWAYS additionally add a temporary folder in which you can experiment with SQL commands which are NOT stored in Subversion or CVS.

The next step is adding the SQL files or system objects on which you will work:

The Toolbar in the main window offers the following functionality: (from left to right)

  1. Add a new or existing Procedure, Function, View, Trigger, Table, File to the Filelist
  2. Delete an item from the Filelist
  3. Search in one or multiple databases for a text in a Procedure, View, Table column etc... (see below)
  4. Sort the FileList
  5. Open the selected table entirely in the Table Editor (see below)
  6. Open the TOP 10 rows of the selected table in the Table Editor
  7. Build the Compound Script (see below)
  8. Create a Database Backup (see below)

Click the leftmost toolbar button and this window will open:

No matter if you:

  • Enter the name for a new SQL file or
  • Select an already existing procedure from the drop down list or
  • Enter the name for a new function,

SqlBuilder will add it to the Filelist of the main window:

There is a big difference between

  • adding a File or Table (in blue) and
  • adding a Procedure, Function, View or Trigger (in green):

It is very important that you understand the following:

Adding a Procedure, Function, View, Trigger

Adding a system object like a *.PROC, *.FUNC, *.VIEW, *.TRIG file means that all changes to SQL code are stored on the SQL server!
SqlBuilder creates a dummy file (like fn_GetUserById.func) in your working directory which does NOT contain any SQL code!

Adding a File, Table

On the other hand if you add a *.SQL or *.TABL file (like Test.sql above), all changes on SQL code will be stored locally in this file.

You will nearly never use the type "File" (*.sql) except for testing (executing) SQL code under development. Do NOT abuse type "File" (*.sql) to store the definitions of procedures, functions or modifications on tables, etc.!!

With CTRL + TAB you can rapidly switch between all the items in the Filelist that have been selected recently.

For each item in the Filelist, SqlBuilder will create the appropriate file in a subfolder of your Scripts folder. The Scripts folder will have a subfolder for each database.

How to Work with CVS / Subversion

You and all your colleagues will check in the entire content of your Scripts folder into Subversion or CVS. When the new release is ready, you click the button "Build Script" and SqlBuilder will build one huge Compound SQL Script.

This script contains:

  1. the contents of all *.sql and *.tabl files (unchanged) and
  2. the ACTUAL VERSION of all procedures, functions, views, triggers loaded directly from your SQL server.

Then you pass the compound script to your clients so they can update their SQL server to the latest version.

The SQL Editor

IMPORTANT:
To work with the SQL Editor you must know the keyborad shortcuts. Click the keyboard help button!!

The SQL editor stores all your changes in an Undo buffer which remains intact even after working on another file meanwhile. With CTRL-Z you can always return to the last workstate.

Executing Code

In a File or Table you can select any part of the SQL code and execute it with CTRL + E. If nothing is selected, the entire code will be executed.

Procedures, functions, views, triggers will always be executed entirely when hitting CTRL + E which will store them on the server.
It is recommended to have at least one Temp file in your Temp working directory where you execute SQL code for testing purposes.

With CTRL + TAB you can rapidly switch between all the items in the Filelist that have been selected recently.

If the result of a SQL query is a scalar value or if the query has no result at all, this will be displayed below in the main window:

If the result is one or multiple tables, these will be displayed in the ResultView window:

You always see the execution time with a real exactness of 1 millisecond. (Performance Counter)
If you want to see the execution time after clearing the server cache, use CTRL + B instead of CTRL + E.
CTRL + B disables all server optimizations, like buffering the query results, so you will see the worst case execution time.

The Toolbar of the Result View window offers the following functionality: (from left to right)

  1. Search a text inside the query result datagrid
  2. Compare two query results by their content (see below)
  3. Export all tables of the returned dataset into an Excel sheet
  4. Export all tables of the returned dataset and the SQL query into a HTML document
  5. Export the currently selected table into a XML file
  6. Show the keyboard shortcut help for this window.

Comparing Query Results by Content

In the ResultView window you can compare the contents of two tables.

To use it, you must send two SQL commands to the server at the same time.

Example:

EXEC proc_GetUserData 877, 1
EXEC proc_GetUserData_New 877, 1

The SQL server will return a dataset with two tables. If proc_GetUserData is a stored procedure and proc_GetUserData_New is a procedure which you have modified, you can test how your modifications affect the returned data.

The Table Editor

The Table Editor is a very powerful tool in SqlBuilder. It allows you to edit tables on the SQL server as if they were Excel tables. You can set the cursor into a cell and modify its value. When you are done with all changes you save the changes. After closing the TableEditor you will see all the SQL code that has been executed in the *.TABL file in the main window. These changes will automatically be included into the compound script if you didn't delete them.

The column's background color changes if the column has a UNIQUE or PRIMARY key. The column's text color depends on the data type (string, integer etc..)

The Toolbar of the Table Editor offers the following functionality: (from left to right)

  1. Search a text in the table
  2. Generate all SQL commands required to save all changes to the server that have been made on the table cells
  3. Reload the entire table from the server.
  4. Reload the TOP 10 rows of the table from the server.
  5. Add a new row
  6. Delete the row which has the cursor
  7. Add a new column
  8. Delete the column which has the cursor
  9. Open the Table Designer (see below)
  10. Build all SQL commands which are required to create this table and its columns and all its content from the scratch.
  11. Export the table's content as HTML document
  12. Export the table's content as Excel sheet
  13. Export the table's content and the column definitions and their constraints into a XML file
  14. Import the content from a XML file into the table (append to current content or replace current content)
  15. Show the keyboard shortcut help for this window.

The Table Designer

The Table Designer is a very powerful tool that allows you to view / modify:

  1. the data type of a column (e.g. changing varchar(10) into varchar(50))
  2. the Identity (Seed / Increment)
  3. the Default value
  4. the Indexes of a column
  5. the Foreign Keys from this table to other tables
  6. the Foreign Keys from other tables to this table
  7. allow / disallow NULL for the column
  8. add / remove a Primary key
  9. add / remove a Unique key

The job of the Table Designer is very complicated because Microsoft's SQL is so incredibly primitive. You will see that when you study the SQL commands which have been executed after modifying an existing primary key in a column which is referenced by foreign keys.

Autogenerated code example:

As you see, SqlBuilder tries to generate universal SQL scripts:

  • If the User with the ID 56196 already exists, its data is updated.
  • If the user does not yet exist, a new row is added to the table.
  • Microsoft's SQL is so incredibly primitive that there is no easier way. (doing this with one single command)
  • You can give a script which updates table data to an administrator of one of your clients and it will always run without errors even if it is run twice.

But if you modify Constraints this will not be possible because the names of the Constraints differ from server to server.

Again: Microsoft's SQL is so incredible primitive that there is no universal way to delete a Constraint without knowing its name.
Commands like the following are not accepted by Microsoft SQL server:

ALTER TABLE [TableName] DROP UNIQUE (ColumnName) <br />ALTER TABLE [TableName] DROP PRIMARY KEY

Using the Developer Comment

The developer comments for procedures, functions, views and triggers are ONLY for internal use for you and your colleagues!
They will neither be written into the compound script nor stored on the server.

Before hitting the "Build Script" button, you should re-order the Filelist in the main window by drag and drop. The compound script will be built in the same order as you see the entries in the Filelist.

If the compound script creates a new procedure which depends on a new function you must FIRST create the function, THEN the procedure to avoid errors on the SQL Server of your clients. Use the developer comment field not to forget this:

The developer comments are stored in the local files *.Proc, *.View, *.Func, *.Trig.

With the next time you check-in int Subversion / CVS the comments will be available for your colleagues.

Database Search

SqlBuilder can search directly in all databases for a text to be contained in a procedure, function, table column etc... The results are displayed as a list of the found system objects with their content beside. You open the Database search from the toolbar in the main window.

Database Backup

It is recommended to use the button "Database Backup" (in the toolbar of the main window) at least once a week and check in the entire folder DatabaseBackup into CVS/subversion to backup your work on procedures etc...

Even if your SQL server has a backup system and you fully trust it, the advantage is that you can compare the procedures, functions, views etc. with older versions by using the built-in compare functions of CVS / Subversion (or another compare tool like Araxis Merge) and you can verify which procedures have changed and what the differences are to older releases.

The files in the backup folder have the date of their creation on the SQL server. Sadly the date of the last modification is not stored on Microsoft SQL Server.

Details

The SQL Parser

The SQL parser is the heart of the application and the most complicated part. Writing a parser for HTML code or for C++ code is extremely simple in comparison to an SQL parser which is a challenge.

While other programming languages have fixed syntax rules (e.g. in HTML every tag starts with <TAG> and ends with </TAG> or in C++, every command has the form function(argument, argument); and every line ends with a semicolon), SQL is a "language" without rules.

  • There is no way to know where a command ends. The most complicated command SELECT may have a WHERE clause or not. It may have a JOIN clause or not, etc. It simply ends where no more clauses follow.
  • Linebreaks may appear at any place or may be COMPLETELY missing.
  • Parenthesis can optionally appear at any place or not.
  • Some commands (e.g. LEFT) may be a keyword (in JOIN LEFT) or a function (in left(string, count)).

Finally, SQL is not a programming "language" at all. And this may be abused by inexperienced programmers to produce code which seems to come directly out of hell. The parser of SqlBuilder is capable of cleaning up any ugly SQL code.

It works in 5 steps:

  1. The first parser parses the plain SQL text and searches for commands, keywords, functions, data types, operators, strings, numbers, comments etc. and for each of them creates one instance of ParseItem which is stored in a double linked chain.
  2. The second parser parses all parenthesis and breaks them up onto multiple lines if they have complex content.
  3. The third parser recursively parses some complex commands like SELECT, CASE, CREATE, BEGIN, END,....
  4. The fourth parser parses and corrects all linebreaks
  5. The last parser fills the RtfHtmlBuilder (see below) with the parsed data to create an RTF document, HTML code or plain text from the parsed data.

Only the first step works with plain text. The following steps work with objects and this makes the parsing very fast so it can happen while entering text. If you enter a new letter while the previous parsing did not yet finish, the previous parsing is cancelled and parsing is started anew. All this runs in the background invisible for the user!

The Class "Defaults"

SqlBuilder has a class with the name Defaults. Here you can define YOUR preferred default settings for the entire program like the colours for the parser, the timeout or the default SQL server if not yet specified by the user.....

Special Controls

SqlBuilder has some special control classes which you can copy and use in other C# applications.

RichTextBoxEx

This class is derived from RichTextBox and extends it with more functionality:

  • A "Search and Replace" dialog
  • A "Goto Line" dialog
  • A display of the current line and character position in a status bar
  • Advanced scrolling functionality
  • Flicker-free replacing of the entire RTF content in the control maintaining the cursor position
  • Undo Buffer
  • Ultra fast RTF creation with RtfHtmlBuilder

RtfHtmlBuilder

If you ever used Microsoft's RichTextBox control and tried to display coloured text, you already know that:

richTextBox.SelectionColor = Color.Red;
richTextBox.SelectionIndent = 5;
richTextBox.AppendText("Text");
....

is EXTREMELY slow. It is so incredibly slow that for the display of a text of 50 KB, the user has to wait 20 seconds!

RtfHtmlBuilder is an ultra-fast RTF, HTML and PlainText creator class.

rtfBuilder.SelectionColor = Color.Red;
rtfBuilder.SelectionIndent = 5;
rtfBuilder.AppendText("Text");
.....
string s_Rtf = rtfBuilder.BuildRtf(new Font("Microsoft Sans Serif", 17));
richTextBoxEx.ReplaceRtf(s_Rtf); // flicker free text replacement

ListViewEx

This class is derived from ListView and allows drag and drop of the items in the view to change their order.

DataGridEx

This class paints the datagrid cells in different colors and has some more features. It has five workarounds built in for really ugly Microsoft bugs in this control. The DataGrid is by far the most buggy control in .NET framework!

PasswordTextBox

This class allows input of passwords which cannot be spied out with an API spy or a .NET spy. The password is stored internally as encrypted string.

The textbox shows the password as plain text while you are typing it, otherwise it displays 12 stars no matter how long the password is.

P.S. On my homepage, you can download an SQL book for beginners in CHM format (German) and much more utilities.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

About the Author

Elmue
Software Developer (Senior) ElmüSoft
Chile Chile
Member
Software Engineer since 27 years.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 5memberDVL Patel2 Mar '13 - 5:18 
Excellent Work.......Smile | :) 5
GeneralMy vote of 5memberRenju Vinod31 Jan '13 - 19:42 
Nice
QuestionHelp!!!memberMember 979248528 Jan '13 - 9:24 
Hi, I'm new here. Is there anyone who can answer my question? When I click the "add file" button, it will show that conneting the SQL server. But after 7 or 8 seconds, it gives me an error, showing that a network-related or instance-specific error occurred while establishing a connection to SQL Server. What does this mean? How can I solve it?
 
Any inputs will be appreciated!!!
Questionmore than othersmemberwknopf14 Dec '12 - 8:30 
Robert "dabbles" in databases (besides flying and a FIVE from him has value.
GeneralMy vote of 5mvpKanasz Robert26 Sep '12 - 7:36 
Excellent article
QuestionThank you!memberManAntunes27 Apr '12 - 5:22 
Hello.
 
I did read the last paragraph and I just want to thank you for your contribution. SQL Builder is helping me a lot. :)

GeneralMy vote of 5membermanoj kumar choubey23 Feb '12 - 19:34 
Nice
Questionsql editormemberMember 78869352 Jul '11 - 18:49 
hi
i do the project in title "SQL EDITOR".i m   going to do in DDL,DML ,DCL and TCL only akka.Front end VB.Net an Oracle 10g.whow to creat table from front end without writing queries .it ask table name ,number of columns etc.by giving this we can create the table .help me plzz..............
GeneralMy vote of 5memberA C Kempe4 Mar '11 - 20:52 
Very good application but only works with tables that have the qualifier "dbo". If you have two tables, "dbo.test" and "allen.test" the app gets very confused!
GeneralMessage Automatically Removedmemberqgyn13 Feb '11 - 14:51 
Message Automatically Removed
GeneralSpammemberElmue14 Feb '11 - 21:32 
This is spam
Please remove !
GeneralMy vote of 5memberRaithlin1 Nov '10 - 4:13 
I use this tool in my development to create the scripts necessary for table changes, etc. Brilliantly done!
GeneralMy vote of 1memberSavara5 Jul '10 - 15:25 
why ? omg.
GeneralMy vote of 2memberUL UL ALBAB28 Apr '10 - 21:23 
Good!
GeneralMy vote is EXCELLENT!!!memberMember 348574013 Mar '10 - 12:11 
What a gigantic amount of work is presented with the source code. I have already used some of the ideas in my own work.
 
Thank you very much.
Ary Mirochnik

GeneralRe: My vote is EXCELLENT!!!mvpElmue13 Mar '10 - 15:10 
Hello
 
Thanks for giving positive feedback.
Some guys here may desillusion one's work.
 
Elmü
GeneralRe: My vote is EXCELLENT!!!memberMidax22 Apr '10 - 7:44 
very nice job, you had been doing a good job.
 
tkx
.

GeneralMy vote of 4membershmulyeng11 Mar '10 - 6:27 
The only issues I have with this project are the UI (which can use some help) and the attitude of the author (take it easy, man!).
 
Comparing this to SSMS is completely wrong. While SSMS does many things this doesn't do, it also has many limitations when trying to do ad-hoc stuff. Another great advantage this has over SSMS is the fact that you can just run it without installation. This allows me to work with my data from any machine.
 
While I would love it if the UI would be a bit more up to date, I really anticipate using this pretty often.
 
Thanks for the hard work.
GeneralRe: My vote of 4mvpElmue13 Mar '10 - 3:59 
Hello
 
The UI is like it is with pure intention.
It is approved in the daily work with my colleagues.
 
To generate scripts automatically - which is the intention of the "sqlBuilder" - you first list all the objects that you work on in the left pane of the GUI, then make the changes on the open procedures, views, tables etc. and at the end automatically build the script from the open objects.
 
While other SQL tools forget which objects you were working on when you close the program, SqlBuilder opens the same list the next time you start the program.
 
All this is pure intention.
 
Elmü
GeneralMy vote of 1memberDean_DOT11 Mar '10 - 5:11 
Reinventing the wheel (SSMS). Poor interface. Attitude.
GeneralRe: My vote of 1memberwknopf14 Dec '12 - 8:22 
This project has the source code, SSMS does not. If you have any programming skills you can modidify it to your hearts content. I will use the work that went into it and modify the UI as needed, it's appreciated.
GeneralMy vote of 2memberoeatek10 Mar '10 - 19:45 
Archaic interface
 
I take it that for 27 years you had no interaction
with end users!
GeneralRe: My vote of 2mvpElmue11 Mar '10 - 1:51 
Hello Peter Souza
 
Read my answer below
http://www.codeproject.com/Messages/3399369/Re-Who-is-missing-the-point-here.aspx
 
Elmü
GeneralMy vote of 1memberPeter Souza10 Mar '10 - 9:05 
.
GeneralRe: My vote of 1mvpElmue11 Mar '10 - 1:50 
Hello Peter Souza
 
Read my answer below
http://www.codeproject.com/Messages/3399369/Re-Who-is-missing-the-point-here.aspx
 
Elmü
GeneralMy vote of 2memberPhoenix7710 Mar '10 - 8:45 
-
GeneralRe: My vote of 2mvpElmue11 Mar '10 - 1:50 
Hello Peter Souza
 
Read my answer below
http://www.codeproject.com/Messages/3399369/Re-Who-is-missing-the-point-here.aspx
 
Elmü
General[My vote of 1] Missing the pointmemberpaul.vencill10 Mar '10 - 6:55 
So, I'm not a MS fanboy or anything (I use a mix of MS and non-MS products, depending on the job requirements), but I fail to see how this is in any way better for doing SQL Server stuff than the free SQL Management Studio Server Express. Even just looking at the screen captures it looks very dated and not as user friendly / intuitive as either SMSSE or the MySQL UI tools.
 
Nothing against you as a dev, I mean, it was clearly a lot of work for you and you obviously have a robust piece of software. I just don't see the value in switching to it, sorry.
GeneralRe: Who is missing the point here ??????mvpElmue11 Mar '10 - 1:48 
Hello Peter Souza
 
This happens if people like you are not able to read an article!
Just looking at the screenshots is not enough!
 
If you would have read the entire article and not just the images and if you would have downloaded the program and TRIED it you would have noticed that YOU are the one who misses the point.
 
The intention to write this code (which was a lot of work) was not just for fun. It was necessary to have a tool that creates automatically scripts to update the SQL server of our client to the leatest version.
E.g. adding columns to tables inserting new data, modifying existing data.
 
This is NOT possible with the Microsoft tools which are really what you say: Just a primitive GUI without further (batch) functionality!
 
Im not so stupid to reinvent the wheel.
I wrote SqlBuilder because there is no other tool on the market with these features!
___________________________
 
Ah and thanks for voting with 4 different users for one article.
This shows that you are a very fair Codeproject member!
You think that a software is bad because you did not even read the article.
 
So why don't you create 100 users on Codeproject and vote 100 times for one article?
You are a programming expert as one can see in your hundreds of articles that you have submitted (just one)
 
I hope that many people will vote for your article as you deserve!
 
Thanks for your votes Peter Souza, alias Phoenix 77, alias paul.vencill, alias oatec!
 
And in the future:
Read an article entirely before you vote for it!
Codeproject is not Facebook!
GeneralRe: Who is missing the point here ??????memberpaul.vencill11 Mar '10 - 10:05 
So, defensiveness and hostility are generally *not* a good way to get folks to change their minds about your point.
 
Second, I'm myself, I'm not anyone else. Just because four people have similar opinions about your work, does not mean they are the same person.
 
Third, I have looked at your project and the code. My comment about the screen captures was that even if all I did was evaluate them, I'd have the opinion that it looked poor.
 
Lastly, if you find value in your project, then great. Even if it was just a learning experience, also great. If you find real production value, awesome. I do not. To each their own, that's why there are options.
 
Paul
GeneralRe: Who is missing the point here ??????mvpElmue13 Mar '10 - 3:48 
Hello
 
Yes you are completely right:
Voting 4 times 1 for the same article is really a hostile attitude.
 
And yes: in this discussion area there were no postings for nearly 1 year and then 4 "different" people vote for the same note with the distance of exactly one hour! It is completely ridiculous if you think that anyone will believe that.
 
> Even if it was just a learning experience,
 
SqlBuilder is a tool that I used at daily work with my colleagues.
On the other hand your one and only article on Codeproject was a learning experience (a contest as you write). Again you are missing the point.
 
The problem is that you did not understand what is the intention of the program. Did you ever ask yourself why the name is "SqlBUILDER" and not for example SqlTableEditor ? If you would have read the article you would know that it allows to create scripts automatically from all the procedures, tables etc that are listed on the left pane in the GUI.
 
There is no program out there neither from Microsoft nor from other companies that does the same!
And the Microsoft tools also do not allow to correct ugly written SQL code automatically.
SqlBuilder indents code automatically.
 
The GUI is with pure intention as it is!
If you think that the GUI should be different then you did not understand it.
The GUI is approved in the daily work.
It is easy to use and optimized for its purpose.
 
And at the end: What are you talking about a poor GUI?
Your one and only article on Codeproject does not have any GUI at all! It is a primitve black DOS window from 1980. That is really poor. Did you ever program a GUI? Why does your text comparer not have a GUI? Where are your publications with GUI?
 
Instead of wasting my time with destructive persons like you I will work on my next publication on Codeproject.
 
Meanwhile you can look around on Codeproject and vote 1 for articles that you dont understand.
 
Elmü
GeneralRe: Who is missing the point here ??????memberpaul.vencill13 Mar '10 - 13:57 
I've only voted once for this article. Four different people really did vote a 1. I found your article for the first time that day b/c it popped up in my iGoogle CodeProject widget, otherwise I likely never would've found it. I don't know why an old article suddenly popped up in that widget, unless you edited it or responded to someone else's comment, but there it is. Possibly the other guys had the same reason for visiting.
 
> On the other hand your one and only article on Codeproject was a learning experience (a contest as you write).
 
I have not written for CodeProject. Perhaps I should, but I have not yet.
 
> The problem is that you did not understand what is the intention of the program.
 
You're correct, I don't. That's why I said so in my very first comment. Instead of getting mad at me and accusing me of being other people and so on, perhaps you could put on a teacher's hat and help me understand. Just because somethign is obvious to you, doesn't mean it's obvious to everyone. After reading and re-reading and even trying your program, I don't see what features it has that I can't do already in my existing tools. I'm sorry that I don't, and I'm especially sorry that I've somehow offended you by disagreeing with you. But the fact that you can build scripts with your tool isn't new, and it's not something I can't do with SSMSE.
 
I'm sorry you feel I'm being destructive, I was simply offering my opinion,and I believe I've done so politely.
GeneralForceParse() Wrong...membervu tran1 Mar '10 - 22:02 
Hello Elmue!
I have a problem when I load content of a View to RickTextBox.
The ForceParse() function is wrong at: It is auto insert spacebar character before "*". (".*" --> ". *)
Ex: create view vSEL as select abc.* from abc
The result after ForceParse:
create view vSEL as select abc. * from abc
 
("spacebar character" is insert before "*")
 
How to remove "spacebar character" ?
Thank you!
sdfsd sdfsdf

GeneralRe: Fixed in version 5.4mvpElmue7 Mar '10 - 11:26 
Hello
 
Thanks for the hint.
I fixed that in version 5.4.
It was very easy: I only added one line of code.
 
When you start SqlBuilder now it should tell you that there is a new version 5.4 available.
If you have a firewall that blocks SQL Builder then look into the file Defaults.cs
There you find the download link for the latest version and download it manually!
 
Elmü
GeneralRe: Fixed in version 5.4membervu tran8 Mar '10 - 17:13 
Hello Elmue! Smile | :)
How are you?
Thank you for your answer!
Could you sent to me download link for latest version please?
I don't find it.
Thank you very much!
V.T
sdfsd sdfsdf

GeneralRe: Fixed in version 5.4mvpElmue11 Mar '10 - 1:26 
Hello
 
Version 5.4 is now available on Codeproject.
 
Elmü
GeneralMy vote of 1memberAlex_V_X15 Oct '09 - 11:59 
Poor knowledge of databases
GeneralNice.memberitayl27 May '09 - 12:13 
EZManage SQL Pro got a very good query editor you can use to get results from all your servers
 
http://www.futureitsoft.com
GeneralRe: Nice.memberElmue28 May '09 - 5:34 
Obviously you can use EZManage SQL Pro and pay 1350 US$ for it.
And obviously you will not have the sourcecode of the tools you use.
 
Do you work for them ?
Or why do you post that here ?
GeneralSuggestionmemberAlexandru Matei18 Sep '08 - 2:14 
Hello,
 
1. Could you please consider adding a Filtering option to the "SQL Result View" grid and "Table Editor" grid ?
 
Right clicking a grid cell would show a menu with the following options
 
= Cell Value
<> Cell Value
IS NOT NULL
IS NULL
 
2. Executing a stored procedure by double-clicking its name
 
Thank you
GeneralRe: SuggestionmemberElmue21 Sep '08 - 11:14 
Hello
 
1.)
You can already enter SQL code to filter which rows appear in the table editor.
OK, with your idea it would be easier in some cases.
 
2.)
Executing a procedure is ultra easy by using the keyboard shortcuts.
 
Currently I dont have the time to work on SQL Builder.
But as you have the source code you can easily add that on your own.
 
Elmü
QuestionI have error.memberMel Igo2 Sep '08 - 15:01 
Cross-thread operation not valid: Control 'frmWait' accessed from a thread other than the thread it was created on.
frmWait.cs (ln 86)
AnswerRe: I have error.memberElmue15 Sep '08 - 18:14 
Hello
 
I suppose you did NOT compile on Visual Studio 2003, where this does not happen.
I suppose that the guys of Microsoft changed the "Text" property of the label.
 
I could write an "Invoke" workaround to solve this,
but probably there are more problems arising afterwards.
 
I don want to waste my time with that.
As I wrote on VS 2003 all works fine and if you don't use VS 2003 you have to bear the consequences.
 
Elmue
QuestionAny one knows a MDX editor?memberivanchain@hotmail.com25 Jun '08 - 5:59 
I am looking for it, but never found one.
 
yours,
Ivan
 
123

GeneralUImembertxALI23 Jun '08 - 20:59 
There are some good ideas but generally the user interface need serious improvement. It is very hard to understand how to do simple task (e.g. how to connect to the server after entering server name - I found it but a simple Enter key is one of the necessary solutions).
GeneralRe: UImemberElmue25 Jun '08 - 9:54 
Hello
 
There is absoluely nothing to improve.
The GUI is like it is with full intention.
It is obvious that you are one of those who do not read.
Thats your own fault.
For anybody who has read the description above there is absolutely no problem to understand how to use the program.
 
The advantages of this GUI will not become obvious if you just played around 5 seconds with the program.
But if you work a while with the program in a team of developers you will understand why the Gui is as it is.
My colleagues and me are very happy to use the tool daily because it saves a lot of work.
 
Elmü
GeneralRe: UImemberVEMS23 Mar '09 - 10:11 
"But if you work a while with the program in a team of developers you will understand why the Gui is as it is."
 
Exactly why UI development teams need a usability team. Imagine end users needing to sit with development to learn how to use a product.
GeneralRe: UImemberElmue23 Mar '09 - 15:23 
Hello
 
The majority of programs was made to be controled with the mouse.
The advantage is that the usage is intuitive.
The disadvantage is that you are very slow with the mouse.
 
This program has many keyboard shortcuts.
The disadvantage is that you have to learn them first (which is quickly done)
But the big advantage is that you modify an SQL statement quickly and execute it within less than a second.
 
For that you have to invest some minutes to read the article and from that day on you will save a lot of minutes each time you use the program.
 
> Imagine end users needing to sit with development to learn how to use a product.
 
This is very exaggerated.
Reading the article is enough.
 
Have you ever worked with 3D Studio MAX ?
Then you know what is complex software!
 
Elmü
Generalin my humble opinion [modified]memberTolga Kurkcuoglu19 Jun '08 - 2:41 
I appreciate your talent, hard work and motivation. Keep up the good work.
 
However, I should point out that your overall attitude and self-flattering remarks within the article cast a shadow on the work which should speak for itself.
 
modified on Thursday, June 19, 2008 8:55 AM

GeneralRe: in my humble opinionmemberElmue19 Jun '08 - 8:58 
Hello
 
I have absolutely no problem to say if something is good or bad.
For me it does not matter if it mine or from others.
 
There are some very excellent articles and sourcecodes here on Codeproject and also some ugly ones.
There are also some tools from Microsoft which are the opposite of user-friendly.
 
What is the problem saying this clearly ?
I have no problem with that.
 
Elmü

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 10 Mar 2010
Article Copyright 2008 by Elmue
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid