3.8 KiB
Processes
Startup
-
(enode project)
-
(enode-available-projects)
-
(enode-get-projects)
(load-file enode-projects-file)
-
(enode-project-available project)
- Test to see if (e.g.)
~/development/<project>/scripts/sql/<project>_ENODE.sql
exists
- Test to see if (e.g.)
-
(setq enode-current-connection-type <connection-type-of-project>)
-
(enode-start-engine)
-
(enode-oracle-start-sql-engine)
(call-interactively 'sql-oracle)
. The command-line option set forsqlplus
in the emacs customisation system include/nolog
, which leaves the need to connect to a database until after the process has commenced.- Set SQL buffer settings
-
MySQL addition
(enode-mysql-start-engine)
t
: nothing can happen here as mysql doesn't support starting an interactive shell.
-
- Open the
*_ENODE.sql
file for the project (setq enode-up t)
to declare that enode has started.-
(enode-connection)
called interactively-
(enode-get-connections)
-
(enode-load-connections-list)
(load-file enode-connections-file)
-
(enode-get-connections)
. As above.-
(enode-add-new-connection connection-description)
(enode-load-connections-list)
. As above.(enode-get-connections)
. As above.-
Get attributes:
-
MySQL addition: This needs to be genericised (or, proxied, really) to support capturing the different details required for the different connection types:
Connection type Username password database hostname port oracle
Y Y tnsnames entry N N mysql
Y Y Optional Y Defaults to 3306, yes if not this conn-user
: Usernameconn-connection
: Database connection: modelled by Oracle's TNSNames detailsconn-prompt
: a three-character designator to use as the SQL*Plus prompt.
-
- Add these details as a record in the
current-type-connections
list. - Update
all-connections
with the newcurrent-type-connections
list. - Update
enode-connections-file
. (enode-load-connections-list)
. As above.
-
(enode-connect connection-description)
(enode-get-connections)
. As above.- Access and, maybe, set
enode-passwords-in-use
. -
Based on
enode-current-connection-type
, one of the following:-
(enode-oracle-connect conn-user conn-pass conn-connection conn-prompt)
-
Issue the commands to the already-created iSQL session:
connect <conn-user>/<conn-pass>@<conn-connection> set serverout on set sqlprompt "<conn-prompt>> "
-
-
(enode-mysql-connect conn-user conn-pass conn-database conn-hostname conn-port conn-prompt)
-
If the buffer for the SQL file has an iSQL buffer:
-
If that iSQL buffer has a running process:
(enode-mysql-reconnect conn-user conn-pass conn-database conn-hostname conn-port)
-
Otherwise:
- Kill iSQL buffer
(call-interactively 'sql-mysql)
- Otherwise
(call-interactively 'sql-mysql)
-
(enode-mysql-set-prompt conn-prompt)
-
-
(setq enode-currrent-connection connection-description)
(setq enode-connected t)
-
-