├── .gitignore ├── README.md ├── backend ├── asp-file │ ├── Default.aspx │ ├── Default.aspx.cs │ └── data │ │ └── default ├── cf-mysql │ ├── database.sql │ └── index.cfm ├── perl-file │ └── index.pl ├── php-blank │ └── index.php ├── php-cubrid │ ├── cubrid_mysql_compat.php │ ├── database.sql │ └── index.php ├── php-file │ ├── data │ │ └── default │ └── index.php ├── php-mysql+file │ ├── data │ │ └── default │ ├── index.php │ └── mysql_import.php ├── php-mysql │ ├── database.sql │ └── index.php ├── php-pdo │ ├── AbstractLayer.php │ ├── LayerMYSQL.php │ ├── LayerPGSQL.php │ └── index.php ├── php-postgresql │ ├── README │ ├── database.sql │ └── index.php └── php-sqlite │ ├── index.php │ └── wwwsqldesigner.sqlite ├── db ├── cubrid │ ├── datatypes.xml │ └── output.xsl ├── mssql │ ├── datatypes.xml │ └── output.xsl ├── mysql │ ├── datatypes.xml │ └── output.xsl ├── oracle │ ├── datatypes.xml │ └── output.xsl ├── postgresql │ ├── datatypes.xml │ └── output.xsl ├── sqlalchemy │ ├── datatypes.xml │ └── output.xsl ├── sqlite │ ├── datatypes.xml │ └── output.xsl ├── vfp9 │ ├── datatypes.xml │ ├── output.xsl │ └── readme_vfp9.txt └── web2py │ ├── datatypes.xml │ └── output.xsl ├── dropbox-oauth-receiver.html ├── fonts └── roboto │ ├── Roboto-Black.ttf │ ├── Roboto-BlackItalic.ttf │ ├── Roboto-Bold.ttf │ ├── Roboto-BoldItalic.ttf │ ├── Roboto-Italic.ttf │ ├── Roboto-Light.ttf │ ├── Roboto-LightItalic.ttf │ ├── Roboto-Medium.ttf │ ├── Roboto-MediumItalic.ttf │ ├── Roboto-Regular.ttf │ ├── Roboto-Thin.ttf │ ├── Roboto-ThinItalic.ttf │ ├── RobotoCondensed-Bold.ttf │ ├── RobotoCondensed-BoldItalic.ttf │ ├── RobotoCondensed-Italic.ttf │ ├── RobotoCondensed-Light.ttf │ ├── RobotoCondensed-LightItalic.ttf │ └── RobotoCondensed-Regular.ttf ├── images ├── ScreenLayout.png ├── addingKeys.png ├── back.png ├── back_dark.png ├── back_dim.png ├── back_matrix.png ├── columnDetail.png ├── constrained.png ├── down.gif ├── editTable.png ├── finalExample.png ├── selectedColumn.png ├── throbber.gif └── up.gif ├── index.html ├── js ├── config.js ├── globals.js ├── io.js ├── jquery.js ├── key.js ├── keymanager.js ├── map.js ├── mui.min.js ├── options.js ├── oz.js ├── relation.js ├── row.js ├── rowmanager.js ├── rubberband.js ├── snackbar.js ├── table.js ├── tablemanager.js ├── toggle.js ├── tooltip.js ├── visual.js ├── window.js └── wwwsqldesigner.js ├── license.txt ├── locale ├── ar.xml ├── cs.xml ├── de.xml ├── el.xml ├── en.xml ├── eo.xml ├── es.xml ├── fr.xml ├── hu.xml ├── icons.xml ├── it.xml ├── ja.xml ├── nl.xml ├── pl.xml ├── pt_BR.xml ├── ro.xml ├── ru.xml ├── sv.xml └── zh.xml ├── nbproject ├── project.properties └── project.xml └── styles ├── mui.min.css ├── print.css └── style.css /.gitignore: -------------------------------------------------------------------------------- 1 | # https://git-scm.com/docs/gitignore 2 | # https://help.github.com/articles/ignoring-files 3 | # Example .gitignore files: https://github.com/github/gitignore 4 | /nbproject 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Moved repo 2 | 3 | Repo has been moved to [lt-mayonesa/wwwsqldesigner](https://github.com/Lt-Mayonesa/wwwsqldesigner) so it is a **real** fork of ondra's tool :P 4 | -------------------------------------------------------------------------------- /backend/asp-file/Default.aspx: -------------------------------------------------------------------------------- 1 | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="backend_asp_file_Default" validateRequest="false" %> 2 | 3 | -------------------------------------------------------------------------------- /backend/asp-file/Default.aspx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Web; 4 | using System.Web.UI; 5 | using System.Web.UI.WebControls; 6 | using System.IO; 7 | 8 | public partial class backend_asp_file_Default : System.Web.UI.Page 9 | { 10 | protected void Page_Load(object sender, EventArgs e) 11 | { 12 | Response.Clear(); 13 | 14 | string action = Request.Params["action"].ToLower(); 15 | 16 | if (action.Equals("list")) 17 | { 18 | list(); 19 | } 20 | 21 | if (action.Equals("load")) 22 | { 23 | load(); 24 | } 25 | 26 | if (action.Equals("save")) 27 | { 28 | save(); 29 | } 30 | 31 | Response.End(); 32 | } 33 | 34 | private void list() 35 | { 36 | string[] filePaths = Directory.GetFiles(Server.MapPath("data")); 37 | foreach (string filePath in filePaths) 38 | { 39 | Response.Write(Path.GetFileName(filePath) + "\n"); 40 | } 41 | } 42 | 43 | private void load() 44 | { 45 | string fNaam = "data/" + Request.Params["keyword"].ToLower(); 46 | Response.ContentType = "text/xml"; 47 | if (File.Exists(Server.MapPath(fNaam))) 48 | { 49 | Response.WriteFile(Server.MapPath(fNaam)); 50 | } 51 | else 52 | { 53 | Response.StatusCode = 404; 54 | } 55 | } 56 | 57 | private void save() 58 | { 59 | string fNaam = "data/" + Request.Params["keyword"].ToLower(); 60 | FileStream fs = new FileStream(Server.MapPath(fNaam), FileMode.Create); 61 | 62 | byte[] buffer = new byte[1024]; 63 | int count; 64 | while ((count = Request.InputStream.Read(buffer, 0, buffer.Length)) != 0) 65 | fs.Write(buffer, 0, count); 66 | 67 | fs.Close(); 68 | 69 | } 70 | } 71 | dd 72 | -------------------------------------------------------------------------------- /backend/asp-file/data/default: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | INTEGERVARCHAR(100)NULLid
INTEGERVARCHAR(100)NULLid
INTEGERINTEGERVARCHAR(100)id
INTEGERINTEGERINTEGERTIMESTAMPid
-------------------------------------------------------------------------------- /backend/cf-mysql/database.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `wwwsqldesigner`; 2 | 3 | CREATE TABLE `wwwsqldesigner` ( 4 | `keyword` varchar(30) NOT NULL default '', 5 | `data` mediumtext, 6 | `dt` timestamp, 7 | PRIMARY KEY (`keyword`) 8 | ); 9 | -------------------------------------------------------------------------------- /backend/perl-file/index.pl: -------------------------------------------------------------------------------- 1 | #!d:\perl\bin\perl.exe -wT 2 | # C.SUDRE - cyril.sudre@edf.fr 3 | 4 | use strict; 5 | use File::Basename; 6 | use IO::File; 7 | use CGI; 8 | 9 | # Directory for datafile. Take care to untaint current execution dir for CGI while -T if you 10 | # choose to keep datafile in the same dir than cgi script. 11 | my $base_dir = (dirname($0) =~ /(.*)/)[0] . "/data/"; 12 | 13 | my $query = new CGI; 14 | my $action = $query->url_param('action') || ''; 15 | 16 | # List available files to load 17 | if($action eq "list") { 18 | print $query->header('text/plain'); 19 | my @files = glob($base_dir . "*"); 20 | for (@files) { 21 | print(basename($_) . "\n"); 22 | } 23 | } 24 | 25 | # Save generated XML to file 26 | elsif($action eq "save") { 27 | # Accept names with spaces and/or extention 28 | my $fname_parameter = ($query->url_param('keyword') =~ /([\w\s]+(\.\w+)*)/)[0]; # Untaint 29 | if (! defined $fname_parameter) { die "Invalid filename!"; } 30 | my $filename = $base_dir . $fname_parameter; 31 | 32 | my $fh = new IO::File ">" . $filename; 33 | if (defined $fh) { 34 | # Win32... 35 | binmode $fh; 36 | 37 | #my $xml = $query->query_string(); 38 | my $xml = $query->param('POSTDATA'); 39 | 40 | # Decode 41 | $xml =~ tr/+/ /; 42 | $xml =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 43 | 44 | print $fh $xml; 45 | 46 | $fh->close; 47 | } 48 | 49 | print $query->header(-status => "201 File created"); 50 | } 51 | 52 | # Load XML from file 53 | elsif($action eq "load") { 54 | # Accept names with spaces and/or extention 55 | my $fname_parameter = ($query->url_param('keyword') =~ /([\w\s]+(\.\w+)*)/)[0]; # Untaint 56 | my $filename = $base_dir . $fname_parameter; 57 | 58 | undef $/; # Slurp 59 | my $fh = new IO::File "< " . $filename; 60 | 61 | if (defined $fh) { 62 | # Need this for UTF-8 AND Win32... 63 | binmode($fh,":utf8"); 64 | 65 | my $content = <$fh>; 66 | $fh->close; 67 | 68 | print $query->header("text/xml"), $content; 69 | } else { print $query->header(-status => "404 Not Found"); } 70 | } 71 | 72 | else { 73 | print $query->header(-status => "501 Not Implemented"); 74 | } 75 | -------------------------------------------------------------------------------- /backend/php-blank/index.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /backend/php-cubrid/database.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE `wwwsqldesigner`; 2 | 3 | CREATE TABLE `wwwsqldesigner` ( 4 | `keyword` varchar(30) NOT NULL, 5 | `data` string, 6 | `dt` timestamp, 7 | PRIMARY KEY (`keyword`) 8 | ); 9 | -------------------------------------------------------------------------------- /backend/php-cubrid/index.php: -------------------------------------------------------------------------------- 1 | "; 6 | echo "Please check your instalation." . "
"; 7 | die; 8 | } 9 | 10 | set_time_limit(0); 11 | 12 | function setup_saveloadlist() { 13 | define("SERVER", "localhost:30000"); 14 | define("USER", "dba"); 15 | define("PASSWORD", ""); 16 | define("DB", "demodb"); 17 | define("TABLE", "wwwsqldesigner"); 18 | } 19 | function setup_import() { 20 | define("SERVER", "localhost:30000"); 21 | define("USER", "dba"); 22 | define("PASSWORD", ""); 23 | define("DB", "demodb"); 24 | } 25 | function connect() { 26 | $conn = cubrid_mysql_connect(SERVER, USER, PASSWORD, DB); 27 | if (!$conn) { 28 | return false; 29 | } 30 | return $conn; 31 | } 32 | 33 | function import($conn) { 34 | $xml = ""; 35 | 36 | $arr = array(); 37 | @ $datatypes = file("../../db/cubrid/datatypes.xml"); 38 | $arr[] = $datatypes[0]; 39 | $arr[] = ''; 40 | for ($i=1;$i 0) { 46 | while ($row = cubrid_mysql_fetch_assoc($result)) { 47 | $table = $row["class_name"]; 48 | $xml .= ''; 49 | 50 | $q = get_SQL_describeTableSQL($table); 51 | $result2 = cubrid_mysql_query_native($q, $conn); 52 | while ($row = cubrid_mysql_fetch_assoc($result2)) { 53 | $name = $row["Field"]; 54 | $type = str_replace(",0)", ")", $row["Type"]); 55 | $null = ($row["Null"] == "YES" ? "1" : "0"); 56 | $def = $row["Default"]; 57 | $ai = (preg_match("/auto_increment/i",$row["Extra"]) ? "1" : "0"); 58 | if ($def == "NULL") { 59 | $def = ""; 60 | } 61 | $xml .= ''; 62 | $xml .= ''.strtoupper($type).''; 63 | $xml .= ''.$def.''; 64 | 65 | /* fk constraints */ 66 | /* 67 | $q = "SELECT 68 | REFERENCED_TABLE_NAME AS 'table', REFERENCED_COLUMN_NAME AS 'column' 69 | FROM KEY_COLUMN_USAGE k 70 | LEFT JOIN TABLE_CONSTRAINTS c 71 | ON k.CONSTRAINT_NAME = c.CONSTRAINT_NAME 72 | WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' 73 | AND c.TABLE_SCHEMA = '".$db."' AND c.TABLE_NAME = '".$table."' 74 | AND k.COLUMN_NAME = '".$name."'"; 75 | */ 76 | $q = "SELECT NULL AS `table`, NULL AS `column` FROM db_root"; //no PHP support in CUBRID for FK 77 | $result3 = cubrid_mysql_query_native($q, $conn); 78 | 79 | while ($row = cubrid_mysql_fetch_assoc($result3)) { 80 | $xml .= ''; 81 | } 82 | 83 | $xml .= ''; 84 | } 85 | 86 | /* keys */ 87 | $q = get_SQL_SHOW_INDEX_FROM($table); 88 | $result2 = cubrid_mysql_query_native($q, $conn); 89 | $idx = array(); 90 | 91 | while ($row = cubrid_mysql_fetch_assoc($result2)) { 92 | $name = $row["Key_name"]; 93 | if (array_key_exists($name, $idx)) { 94 | $obj = $idx[$name]; 95 | } else { 96 | $t = "INDEX"; 97 | 98 | if ($row["Non_unique"] == "0") { 99 | $t = "UNIQUE"; 100 | } 101 | 102 | if(columnIsPK($conn, $table, $row["Column_name"])) { 103 | $t = "PRIMARY"; 104 | } 105 | 106 | $obj = array( 107 | "columns" => array(), 108 | "type" => $t 109 | ); 110 | } 111 | 112 | $obj["columns"][] = $row["Column_name"]; 113 | $idx[$name] = $obj; 114 | } 115 | 116 | foreach ($idx as $name=>$obj) { 117 | $xml .= ''; 118 | for ($i=0;$i'; 121 | } 122 | $xml .= ''; 123 | } 124 | $xml .= "
"; 125 | } 126 | } else { 127 | $xml = ""; 128 | } 129 | $arr[] = $xml; 130 | $arr[] = '
'; 131 | return implode("\n",$arr); 132 | } 133 | 134 | /////////////////////////////////////////////////////////////////////////////////////////////////////// 135 | 136 | $a = (isset($_GET["action"]) ? $_GET["action"] : false); 137 | switch ($a) { 138 | case "list": 139 | setup_saveloadlist(); 140 | $conn = connect(); 141 | $sql = "SELECT `keyword`, DATE_FORMAT(`dt`, '%d-%M-%Y %H:%i') AS dt FROM ".TABLE." ORDER BY dt DESC"; 142 | $result = cubrid_mysql_query_native($sql, $conn); 143 | if(cubrid_mysql_num_rows($result) > 0) { 144 | while ($row = cubrid_mysql_fetch_assoc($result)) { 145 | echo $row["keyword"]." [".$row["dt"]."]\n"; 146 | } 147 | } 148 | break; 149 | case "save": 150 | setup_saveloadlist(); 151 | $conn = connect(); 152 | $keyword = (isset($_GET["keyword"]) ? $_GET["keyword"] : ""); 153 | $keyword = cubrid_mysql_real_escape_string($keyword); 154 | $data = file_get_contents("php://input"); 155 | if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) { 156 | $data = stripslashes($data); 157 | } 158 | $data = cubrid_mysql_real_escape_string($data); 159 | $r = cubrid_mysql_query_native("SELECT * FROM ".TABLE." WHERE `keyword` = '".$keyword."'", $conn); 160 | if (cubrid_mysql_num_rows($r) > 0) { 161 | $res = cubrid_mysql_query_native("UPDATE ".TABLE." SET `data` = '".$data."', `dt`=SYS_TIMESTAMP WHERE `keyword` = '".$keyword."'", $conn); 162 | } else { 163 | $res = cubrid_mysql_query_native("INSERT INTO ".TABLE." (`keyword`, `data`, `dt`) VALUES ('".$keyword."', '".$data."', SYS_TIMESTAMP)", $conn); 164 | } 165 | if (!$res) { 166 | header("HTTP/1.0 500 Internal Server Error"); 167 | } else { 168 | header("HTTP/1.0 201 Created"); 169 | } 170 | break; 171 | case "load": 172 | setup_saveloadlist(); 173 | $conn = connect(); 174 | $keyword = (isset($_GET["keyword"]) ? $_GET["keyword"] : ""); 175 | $keyword = cubrid_mysql_real_escape_string($keyword); 176 | $result = cubrid_mysql_query_native("SELECT `data` FROM ".TABLE." WHERE `keyword` = '".$keyword."'", $conn); 177 | $row = cubrid_mysql_fetch_assoc($result); 178 | if (!$row) { 179 | header("HTTP/1.0 404 Not Found"); 180 | } else { 181 | header("Content-type: text/xml"); 182 | echo $row["data"]; 183 | } 184 | break; 185 | case "import": 186 | setup_import(); 187 | $conn = connect(); 188 | header("Content-type: text/xml"); 189 | $txt = import($conn); 190 | echo $txt; 191 | break; 192 | default: header("HTTP/1.0 501 Not Implemented"); 193 | } 194 | 195 | ?> 196 | -------------------------------------------------------------------------------- /backend/php-file/data/default: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | INTEGERVARCHAR(100)NULLid
INTEGERVARCHAR(100)NULLid
INTEGERINTEGERVARCHAR(100)id
INTEGERINTEGERINTEGERTIMESTAMPid
-------------------------------------------------------------------------------- /backend/php-file/index.php: -------------------------------------------------------------------------------- 1 | 36 | -------------------------------------------------------------------------------- /backend/php-mysql+file/data/default: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | INTEGERVARCHAR(100)NULLid
INTEGERVARCHAR(100)NULLid
INTEGERINTEGERVARCHAR(100)id
INTEGERINTEGERINTEGERTIMESTAMPid
-------------------------------------------------------------------------------- /backend/php-mysql+file/index.php: -------------------------------------------------------------------------------- 1 | 20 | * @since 10-July-2009 21 | */ 22 | 23 | // Define these constants for importing from your MySQL database. MySQL 24 | // usually stores your metadata inside the `information_schema` database 25 | // on the `TABLES` table 26 | define('HOST', 'localhost'); 27 | define('USER', 'root'); 28 | define('PASS', 'password'); 29 | define('DB', 'information_schema'); 30 | 31 | // This constant is the regular expression used to validate the filename 32 | define('FILENAME_REGEX', '^[A-Za-z0-9_]{1,100}$'); 33 | 34 | // Pull the action variable from the GET and validate it 35 | $action = isset($_GET['action']) ? $_GET['action'] : ''; 36 | 37 | if(!in_array($action, array('list','save','load','import'))) { 38 | header('HTTP/1.0 501 Not Implemented'); 39 | exit; 40 | } 41 | 42 | // Save and Load actions must have the 'keyword' GET variable to work, 43 | // I've used a regular expression to keep filenames simple and valid 44 | // so that they don't do anything unintended. 45 | if($action == 'save' || $action == 'load') { 46 | if(!isset($_GET['keyword']) || !ereg(FILENAME_REGEX, $_GET['keyword'])) { 47 | header('HTTP/1.0 400 Bad Request'); 48 | exit; 49 | } 50 | } 51 | 52 | // The import action requires the database variable to be set 53 | if($action == 'import' && !isset($_GET['database'])) { 54 | header('HTTP/1.0 400 Bad Request'); 55 | exit; 56 | } 57 | 58 | // Based on the action variable return appropriate data 59 | switch($action) { 60 | case 'list': 61 | // List all files in the data directory 62 | foreach (glob('data/*') as $file) 63 | echo basename($file)."\n"; 64 | break; 65 | 66 | case 'save': 67 | // Open the file for writing 68 | $f = fopen('data/'.$_GET['keyword'], 'w'); 69 | 70 | // Read in the contents of the XML file from input 71 | $data = file_get_contents('php://input'); 72 | if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) { 73 | $data = stripslashes($data); 74 | } 75 | 76 | // Write the data to the file and close the file 77 | fwrite($f, $data); 78 | fclose($f); 79 | 80 | // Write the response HTTP code 81 | header('HTTP/1.0 201 Created'); 82 | break; 83 | 84 | case 'load': 85 | $keyword = 'data/' . $_GET['keyword']; 86 | if (!file_exists($keyword)) { 87 | header('HTTP/1.0 404 Not Found'); 88 | } else { 89 | header('Content-type: text/xml'); 90 | echo file_get_contents($keyword); 91 | } 92 | break; 93 | 94 | case 'import': 95 | // The import command may take some time, so make sure that PHP won't timeout 96 | set_time_limit(0); 97 | 98 | // I've included the mysql_import function from the php_mysql plugin as its 99 | // own file for future compatibility and to take so much code out of this one 100 | // file. 101 | require_once 'mysql_import.php'; 102 | 103 | // Connect to the MySQL Database, short circuiting ensures that this code will 104 | // execute without error 105 | if (!mysql_connect(HOST,USER,PASS) || !mysql_select_db(DB)) { 106 | header("HTTP/1.0 503 Service Unavailable"); 107 | exit; 108 | } 109 | 110 | header("Content-type: text/xml"); 111 | echo import(); 112 | 113 | break; 114 | } 115 | ?> 116 | -------------------------------------------------------------------------------- /backend/php-mysql+file/mysql_import.php: -------------------------------------------------------------------------------- 1 | '; 11 | for ($i=1;$i'; 19 | $comment = (isset($row["TABLE_COMMENT"]) ? $row["TABLE_COMMENT"] : ""); 20 | if ($comment) { $xml .= ''.$comment.''; } 21 | 22 | $q = "SELECT * FROM COLUMNS WHERE TABLE_NAME = '".$table."' AND TABLE_SCHEMA = '".$db."'"; 23 | $result2 = mysql_query($q); 24 | while ($row = mysql_fetch_array($result2)) { 25 | $name = $row["COLUMN_NAME"]; 26 | $type = $row["COLUMN_TYPE"]; 27 | $comment = (isset($row["COLUMN_COMMENT"]) ? $row["COLUMN_COMMENT"] : ""); 28 | $null = ($row["IS_NULLABLE"] == "YES" ? "0" : "1"); 29 | $def = $row["COLUMN_DEFAULT"]; 30 | $ai = (preg_match("/auto_increment/i",$row["EXTRA"]) ? "1" : "0"); 31 | if ($def == "NULL") { $def = ""; } 32 | $xml .= ''; 33 | $xml .= ''.strtoupper($type).''; 34 | $xml .= ''.$def.''; 35 | if ($comment) { $xml .= ''.$comment.''; } 36 | 37 | /* fk constraints */ 38 | $q = "SELECT 39 | REFERENCED_TABLE_NAME AS 'table', REFERENCED_COLUMN_NAME AS 'column' 40 | FROM KEY_COLUMN_USAGE k 41 | LEFT JOIN TABLE_CONSTRAINTS c 42 | ON k.CONSTRAINT_NAME = c.CONSTRAINT_NAME 43 | WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' 44 | AND c.TABLE_SCHEMA = '".$db."' AND c.TABLE_NAME = '".$table."' 45 | AND k.COLUMN_NAME = '".$name."'"; 46 | $result3 = mysql_query($q); 47 | 48 | while ($row = mysql_fetch_array($result3)) { 49 | $xml .= ''; 50 | } 51 | 52 | $xml .= ''; 53 | } 54 | 55 | /* keys */ 56 | $q = "SELECT * FROM STATISTICS WHERE TABLE_NAME = '".$table."' AND TABLE_SCHEMA = '".$db."' ORDER BY SEQ_IN_INDEX ASC"; 57 | $result2 = mysql_query($q); 58 | $idx = array(); 59 | 60 | while ($row = mysql_fetch_array($result2)) { 61 | $name = $row["INDEX_NAME"]; 62 | if (array_key_exists($name, $idx)) { 63 | $obj = $idx[$name]; 64 | } else { 65 | $type = $row["INDEX_TYPE"]; 66 | $t = "INDEX"; 67 | if ($type == "FULLTEXT") { $t = $type; } 68 | if ($row["NON_UNIQUE"] == "0") { $t = "UNIQUE"; } 69 | if ($name == "PRIMARY") { $t = "PRIMARY"; } 70 | 71 | $obj = array( 72 | "columns" => array(), 73 | "type" => $t 74 | ); 75 | } 76 | 77 | $obj["columns"][] = $row["COLUMN_NAME"]; 78 | $idx[$name] = $obj; 79 | } 80 | 81 | foreach ($idx as $name=>$obj) { 82 | $xml .= ''; 83 | for ($i=0;$i'; 86 | } 87 | $xml .= ''; 88 | } 89 | $xml .= ""; 90 | } 91 | $arr[] = $xml; 92 | $arr[] = ''; 93 | return implode("\n",$arr); 94 | } 95 | ?> 96 | -------------------------------------------------------------------------------- /backend/php-mysql/database.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `wwwsqldesigner`; 2 | 3 | CREATE TABLE `wwwsqldesigner` ( 4 | `keyword` varchar(30) NOT NULL default '', 5 | `data` mediumtext, 6 | `dt` timestamp, 7 | PRIMARY KEY (`keyword`) 8 | ); 9 | -------------------------------------------------------------------------------- /backend/php-pdo/AbstractLayer.php: -------------------------------------------------------------------------------- 1 | 28 | -------------------------------------------------------------------------------- /backend/php-postgresql/README: -------------------------------------------------------------------------------- 1 | Postgresql server backend for wwwsqldesigner 2 | version 0.1 beta 3 | 4 | 5 | Instructions: 6 | 7 | If you want to save/load your diagrams in a database... 8 | 9 | 1) Create a login role called 'wwwsqldesigner' using 'xxx' as password. 10 | 2) Create a databse called 'wwwsqldesigner' with... 11 | owner as 'wwwsqldesigner', 12 | UTF-8 encoding, 13 | and template0 14 | 3) Connect to this newly created database and run the database.sql script 15 | located in this folder. 16 | 4) Edit config.js located in the js directory... 17 | change default database to postgresql, 18 | add postgresql to available backends 19 | 5) If you want to import the schema of an an already created database, 20 | edit the index.php script located in this directory 21 | -------------------------------------------------------------------------------- /backend/php-postgresql/database.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS wwwsqldesigner; 2 | 3 | CREATE TABLE wwwsqldesigner ( 4 | keyword varchar(30) NOT NULL, 5 | xmldata text, 6 | dt timestamp, 7 | PRIMARY KEY (keyword) 8 | ); 9 | -------------------------------------------------------------------------------- /backend/php-sqlite/index.php: -------------------------------------------------------------------------------- 1 | exec( $initSQL ); 26 | return ($res !== false); 27 | } 28 | return true; 29 | } 30 | function import() { 31 | header( 'HTTP/1.0 501 Not Implemented' ); 32 | } 33 | 34 | $a = (isset($_GET["action"]) ? $_GET["action"] : false); 35 | switch( $a ) { 36 | case 'list' : 37 | setup_saveloadlist(); 38 | if( !connect() ) { 39 | header( 'HTTP/1.0 503 Service Unavailable' ); 40 | break; 41 | } 42 | $result = $pdo->query( "SELECT keyword FROM ".TABLE); 43 | $data = $result->fetchAll(); 44 | if( count($data) > 0 ) { 45 | foreach ($data as $row) { 46 | echo $row['keyword']."\n"; 47 | } 48 | } else { 49 | echo "--No Designs Saved"; 50 | } 51 | break; 52 | case 'save' : 53 | setup_saveloadlist(); 54 | if( !connect() ) { 55 | header( 'HTTP/1.0 503 Service Unavailable' ); 56 | break; 57 | } 58 | 59 | $keyword = ( isset( $_GET['keyword'] ) ? $_GET['keyword'] : '' ); 60 | $data = file_get_contents( "php://input" ); 61 | if( get_magic_quotes_gpc() 62 | || get_magic_quotes_runtime() ) { 63 | $data = stripslashes( $data ); 64 | } 65 | 66 | $statement = $pdo->prepare("SELECT COUNT(*) AS c FROM ".TABLE." WHERE keyword = ?"); 67 | $statement->execute(array($keyword)); 68 | $result = $statement->fetchAll(); 69 | if ($result[0]["c"] > 0) { 70 | $result = $pdo->prepare( "UPDATE ".TABLE." SET data = ? WHERE keyword = ?")->execute(array($data, $keyword)); 71 | } else { 72 | $result = $pdo->prepare( "INSERT INTO ".TABLE." (keyword, data) VALUES (?, ?)")->execute(array($keyword, $data)); 73 | } 74 | 75 | if( !$result ) { 76 | header( 'HTTP/1.0 500 Internal Server Error' ); 77 | } else { 78 | header( 'HTTP/1.0 201 Created' ); 79 | } 80 | break; 81 | case 'load' : 82 | setup_saveloadlist(); 83 | if ( !connect() ) { 84 | header( 'HTTP/1.0 503 Service Unavailable' ); 85 | break; 86 | } 87 | $keyword = ( isset( $_GET['keyword'] ) ? $_GET['keyword'] : '' ); 88 | 89 | $statement = $pdo->prepare( "SELECT data FROM ".TABLE." WHERE keyword = ?"); 90 | $statement->execute(array($keyword)); 91 | $data = $statement->fetchAll(); 92 | 93 | if( !count($data) ) { 94 | header( 'HTTP/1.0 404 Not Found' ); 95 | } else { 96 | header( 'Content-type: text/xml' ); 97 | echo $data[0]['data']; 98 | } 99 | break; 100 | case 'import' : 101 | setup_import(); 102 | default: 103 | header( 'HTTP/1.0 501 Not Implemented' ); 104 | } 105 | 106 | 107 | /* 108 | list: 501/200 109 | load: 501/200/404 110 | save: 501/201 111 | import: 501/200 112 | */ 113 | ?> 114 | -------------------------------------------------------------------------------- /backend/php-sqlite/wwwsqldesigner.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/backend/php-sqlite/wwwsqldesigner.sqlite -------------------------------------------------------------------------------- /db/cubrid/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /db/cubrid/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -- 6 | -- CUBRID SQL Script 7 | -- 8 | 9 | 10 | 11 | 12 | -- Table ` 13 | 14 | ` 15 | 16 | 17 | 18 | 19 | 20 | -- DROP TABLE ` 21 | 22 | `; 23 | 24 | 25 | 26 | 27 | 28 | CREATE TABLE ` 29 | 30 | ` ( 31 | 32 | 33 | 34 | ` 35 | 36 | ` 37 | 38 | 39 | 40 | 41 | 42 | NOT NULL 43 | 44 | 45 | 46 | AUTO_INCREMENT 47 | 48 | 49 | 50 | DEFAULT 51 | 52 | 53 | 54 | 55 | 56 | , 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | , 65 | 66 | 67 | 68 | PRIMARY KEY ( 69 | UNIQUE KEY ( 70 | KEY ( 71 | 72 | 73 | 74 | `` 75 | 76 | , 77 | 78 | 79 | ) 80 | 81 | 82 | 83 | ); 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -- Foreign Keys 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | ALTER TABLE ` 102 | 103 | ` ADD FOREIGN KEY (` 104 | 105 | `) REFERENCES ` 106 | 107 | ` (` 108 | 109 | `); 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | -- Test Data 122 | 123 | 124 | 125 | 126 | 127 | -- INSERT INTO ` 128 | ` ( 129 | 130 | ` 131 | 132 | ` 133 | 134 | , 135 | 136 | 137 | ) VALUES 138 | -- ( 139 | 140 | '' 141 | 142 | , 143 | 144 | 145 | ); 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /db/mssql/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /db/mssql/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | CREATE TABLE [ 15 | 16 | ] ( 17 | 18 | 19 | [ 20 | 21 | ] 22 | 23 | 24 | 25 | 26 | 27 | NOT NULL 28 | 29 | 30 | 31 | IDENTITY (1, 1) 32 | 33 | 34 | 35 | , 36 | 37 | 38 | 39 | -- 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | , 52 | 53 | 54 | 55 | CONSTRAINT 56 | 57 | 58 | 59 | PRIMARY KEY ( 60 | FULLTEXT KEY ( 61 | UNIQUE KEY ( 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | [] 70 | 71 | , 72 | 73 | 74 | ) 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | ) ON [PRIMARY] 85 | GO 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | ALTER TABLE [ 95 | 96 | ] ADD FOREIGN KEY ( 97 | 98 | ) REFERENCES [ 99 | 100 | ] ([ 101 | 102 | ]); 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | CREATE INDEX 114 | 115 | ON [ 116 | 117 | ] ([ 118 | 119 | 120 | ] 121 | 122 | , 123 | 124 | 125 | ); 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /db/mysql/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /db/mysql/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -- --- 29 | -- Globals 30 | -- --- 31 | 32 | -- SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; 33 | -- SET FOREIGN_KEY_CHECKS=0; 34 | 35 | 36 | 37 | 38 | 39 | -- --- 40 | -- Table ' 41 | 42 | ' 43 | -- 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -- --- 53 | 54 | 55 | 56 | DROP TABLE IF EXISTS ` 57 | 58 | `; 59 | 60 | 61 | 62 | CREATE TABLE ` 63 | 64 | ` ( 65 | 66 | 67 | ` 68 | 69 | ` 70 | 71 | 72 | 73 | 74 | 75 | NOT NULL 76 | NULL 77 | 78 | 79 | 80 | AUTO_INCREMENT 81 | 82 | 83 | 84 | DEFAULT 85 | 86 | 87 | 88 | 89 | 90 | COMMENT ' 91 | 92 | 93 | 94 | 95 | 96 | ' 97 | 98 | 99 | 100 | , 101 | 102 | 103 | 104 | 105 | 106 | 107 | , 108 | 109 | 110 | PRIMARY KEY ( 111 | FULLTEXT KEY ( 112 | UNIQUE KEY ( 113 | KEY ( 114 | 115 | 116 | 117 | `` 118 | 119 | , 120 | 121 | 122 | ) 123 | 124 | 125 | 126 | 127 | ) 128 | 129 | 130 | 131 | 132 | COMMENT ' 133 | 134 | 135 | 136 | 137 | 138 | ' 139 | 140 | ; 141 | 142 | 143 | 144 | 145 | 146 | -- --- 147 | -- Foreign Keys 148 | -- --- 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | ALTER TABLE ` 157 | 158 | ` ADD FOREIGN KEY ( 159 | 160 | ) REFERENCES ` 161 | 162 | ` (` 163 | 164 | `); 165 | 166 | 167 | 168 | 169 | 170 | 171 | -- --- 172 | -- Table Properties 173 | -- --- 174 | 175 | 176 | 177 | -- ALTER TABLE ` 178 | ` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 179 | 180 | 181 | 182 | 183 | 184 | 185 | -- --- 186 | -- Test Data 187 | -- --- 188 | 189 | 190 | 191 | -- INSERT INTO ` 192 | ` ( 193 | 194 | ` 195 | 196 | ` 197 | 198 | , 199 | 200 | 201 | ) VALUES 202 | -- ( 203 | 204 | '' 205 | 206 | 207 | , 208 | 209 | 210 | 211 | ); 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /db/oracle/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /db/oracle/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | CREATE TABLE ` 31 | 32 | ` ( 33 | 34 | 35 | ` 36 | 37 | ` 38 | 39 | 40 | 41 | 42 | 43 | NOT NULL 44 | 45 | 46 | 51 | 52 | 53 | DEFAULT 54 | 55 | 56 | 57 | 58 | 59 | , 60 | 61 | 62 | 63 | 64 | 65 | 66 | , 67 | 68 | 69 | PRIMARY KEY ( 70 | FULLTEXT KEY ( 71 | UNIQUE KEY ( 72 | KEY ( 73 | 74 | 75 | 76 | `` 77 | 78 | , 79 | 80 | 81 | ) 82 | 83 | 84 | 85 | 86 | ); 87 | 88 | 89 | 90 | COMMENT ON TABLE ` 91 | 92 | ` IS ' 93 | 94 | 95 | 96 | 97 | 98 | '; 99 | 100 | 101 | 102 | 103 | 104 | COMMENT ON COLUMN ` 105 | 106 | `.` 107 | 108 | ` IS ' 109 | 110 | 111 | 112 | 113 | 114 | '; 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | ALTER TABLE ` 126 | 127 | ` ADD FOREIGN KEY ( 128 | 129 | ) REFERENCES ` 130 | 131 | ` (` 132 | 133 | `); 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /db/postgresql/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /db/postgresql/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | CREATE TABLE " 30 | 31 | " ( 32 | 33 | 34 | " 35 | 36 | " 37 | 38 | 39 | 40 | 46 | SERIAL 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | NOT NULL 56 | 57 | 58 | 59 | 60 | DEFAULT 61 | 62 | 63 | 64 | 65 | 66 | 67 | /* 68 | 69 | */ 70 | 71 | 72 | 73 | , 74 | 75 | 76 | 77 | 78 | 79 | 80 | , 81 | 82 | 83 | PRIMARY KEY ( 84 | UNIQUE ( 85 | KEY ( 86 | 87 | 88 | 89 | "" 90 | 91 | , 92 | 93 | 94 | ) 95 | 96 | 97 | 98 | 99 | ); 100 | 101 | 102 | 103 | COMMENT ON TABLE " 104 | 105 | " IS ' 106 | 107 | 108 | 109 | 110 | 111 | '; 112 | 113 | 114 | 115 | 116 | 117 | 118 | COMMENT ON COLUMN " 119 | 120 | "." 121 | 122 | " IS ' 123 | 124 | 125 | 126 | 127 | 128 | '; 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | ALTER TABLE " 142 | 143 | " ADD FOREIGN KEY (" 144 | 145 | ") REFERENCES " 146 | 147 | " (" 148 | 149 | "); 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /db/sqlalchemy/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /db/sqlite/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /db/sqlite/output.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | CREATE TABLE ' 9 | 10 | ' ( 11 | 12 | 13 | 14 | 15 | '' 16 | 17 | 18 | 19 | 20 | NOT NULL 21 | 22 | 23 | 24 | 25 | DEFAULT 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | PRIMARY KEY 35 | 36 | 37 | 38 | 39 | 40 | 41 | AUTOINCREMENT 42 | 43 | 44 | 45 | 46 | REFERENCES ' 47 | 48 | ' (' 49 | 50 | ') 51 | 52 | 53 | 54 | , 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | , 63 | 64 | 65 | PRIMARY KEY 66 | UNIQUE 67 | 68 | ( 69 | 70 | 71 | 72 | 73 | , 74 | 75 | 76 | ) 77 | 78 | 79 | 80 | 81 | 82 | ); 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | CREATE INDEX ' 92 | 93 | ' ON ' 94 | 95 | ' (' 96 | 97 | 98 | 99 | ', ' 100 | 101 | 102 | '); 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /db/vfp9/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /db/vfp9/readme_vfp9.txt: -------------------------------------------------------------------------------- 1 | 07.12.2009 2 | vfp9 support for WwwSQLDesigner 3 | by zvolsky@seznam.cz 4 | 5 | 6 | Installation: 7 | ------------- 8 | vfp9 support is standard part of WwwSQLDesigner - simple choose database vfp9 in Settings. 9 | 10 | You can change the generated script by patch/replace of db\vfp9\output.xsl. 11 | 12 | 13 | WwwSQLDesigner basics: 14 | ---------------------- 15 | To start click Index.html. 16 | Never use Page Refresh (F5) - data will be lost! 17 | Use Save button to generate FoxPro script with CREATE TABLEs. 18 | Use Save/Read and Save XML buttons to generate XML and copy-paste it into text file to save your work. 19 | Use Save/Read and Read XML buttons to continue work. 20 | 21 | 22 | Use of VFP9 support: 23 | -------------------- 24 | Textbox "Default" in Field adding has different meaning. Here you can enter all foxpro keywords, which follow field definition. 25 | No word "DEFAULT" is added. To use some DEFAULT, write "DEFAULT value". If you let just "NULL" in Textbox "Default", 26 | you will receive FoxPro error. Write "DEFAULT .NULL." instead. 27 | 28 | Data types Binary aren't in list. Use standard Varchar, Character, Memo instead and write "NOCPTRANS" into the "Default" textbox. 29 | 30 | Data type "Integer (not key)" differents (from the primary/foreign key) just in its color (but generates standard Integer). 31 | 32 | 33 | 34 | Generated VFP script contains (optional) parameters, which change behavior of CREATE TABLE commands: 35 | teLongName gives a possibility to generate FREE or NAME keywords. 36 | tcCommand can fire immediately after each CREATE TABLE (new table is selected). 37 | F.e. "= MyProc( ALIAS(), m.lcTableComment, @lacComments )" gives access to alias and all comments from model inside MyProc() procedure. 38 | tcPath can control path, where tables will be created. 39 | 40 | Comments aren't copied directly into target database. 41 | Instead of this, they are prepared in lcTableComment variable (table comment) and in lacComments array (field comments) before &tcCommand call. 42 | So you can work with comments in your user defined code as you want. 43 | -------------------------------------------------------------------------------- /db/web2py/datatypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dropbox-oauth-receiver.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 |

Dropbox sign-in successful

11 | 12 |

Please close this window.

13 | 14 | 15 | -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Black.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Italic.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-Bold.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-Italic.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-Light.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/roboto/RobotoCondensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/fonts/roboto/RobotoCondensed-Regular.ttf -------------------------------------------------------------------------------- /images/ScreenLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/ScreenLayout.png -------------------------------------------------------------------------------- /images/addingKeys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/addingKeys.png -------------------------------------------------------------------------------- /images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/back.png -------------------------------------------------------------------------------- /images/back_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/back_dark.png -------------------------------------------------------------------------------- /images/back_dim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/back_dim.png -------------------------------------------------------------------------------- /images/back_matrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/back_matrix.png -------------------------------------------------------------------------------- /images/columnDetail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/columnDetail.png -------------------------------------------------------------------------------- /images/constrained.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/constrained.png -------------------------------------------------------------------------------- /images/down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/down.gif -------------------------------------------------------------------------------- /images/editTable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/editTable.png -------------------------------------------------------------------------------- /images/finalExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/finalExample.png -------------------------------------------------------------------------------- /images/selectedColumn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/selectedColumn.png -------------------------------------------------------------------------------- /images/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/throbber.gif -------------------------------------------------------------------------------- /images/up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lt-mayonesa/sqldesigner/bf1c512e476b9971e34558c8437c6d993dfbd5c9/images/up.gif -------------------------------------------------------------------------------- /js/config.js: -------------------------------------------------------------------------------- 1 | var CONFIG = { 2 | AVAILABLE_DBS: ["mysql", "sqlite", "web2py", "mssql", "postgresql", "oracle", "sqlalchemy", "vfp9", "cubrid"], 3 | DEFAULT_DB: "mysql", 4 | AVAILABLE_LOCALES: ["ar", "cs", "de", "el", "en", "eo", "es", "fr", "hu", "it", "ja", "nl", "pl", "pt_BR", "ro", "ru", "sv", "zh"], 5 | DEFAULT_LOCALE: "en", 6 | AVAILABLE_BACKENDS: ["php-mysql", "php-blank", "php-file", "php-sqlite", "php-mysql+file", "php-postgresql", "php-pdo", "perl-file", "php-cubrid", "asp-file"], 7 | DEFAULT_BACKEND: ["php-mysql"], 8 | RELATION_THICKNESS: 2, 9 | RELATION_SPACING: 15, 10 | RELATION_COLORS: ["#323232", "#F44336", "#E91E63", "#9C27B0", "#3F51B5", "#673AB7", "#2196F3", "#03A9F4", "#00BCD4", "#009688", "#4CAF50", "#8BC34A", "#CDDC39", "#FFC107", "#FF5722", "#795548", "#607D8B"], 11 | STATIC_PATH: "", 12 | XHR_PATH: "", 13 | /* 14 | * The key below needs to be set individually by you if you want to use the Dropbox load/save feature. 15 | * To do that, first sign up with Dropbox (may require a specific developer / SDK sign-up), go to 16 | * https://www.dropbox.com/developers/apps and use "Create app" to add a new "Dropbox API app". 17 | * Limit the app to its own folder. Call it, for instance, "wwwsqldesigner". 18 | * Under "OAuth 2", "Redirect URIs", add the URL to the "dropbox-oauth-receiver.html" file on your server. 19 | * E.g, if you install wwwsqldesigner on your local web server under "http://localhost/sqldesigner/", then add 20 | * http://localhost/sqldesigner/dropbox-oauth-receiver.html as a Redirection URI. 21 | * Copy the shown "App key" and paste it here below instead of the null value: 22 | */ 23 | DROPBOX_KEY: null, // such as: "d6stdscwewhl6sa" 24 | 25 | CUSTOM_TYPE_COLORS: { 26 | 'numeric': '#2196F3', 27 | 'character': '#8BC34A', 28 | 'date & time': '#FFC107', 29 | 'miscellaneous': '#795548' 30 | }, 31 | SHORTCUTS: { 32 | saveLocal: { 33 | key: 'F2', 34 | code: false 35 | }, 36 | loadLocal: { 37 | key: 'F4', 38 | code: false 39 | }, 40 | addtable: {key: 'a', code: 65}, 41 | edittable: {key: 'e', code: 69}, 42 | editrow: {key: 'e', code: 69}, 43 | addrow: {key: 'f', code: 70}, 44 | removetable: {key: 'DELETE', code: 46}, 45 | removerow: {key: 'DELETE', code: 46}, 46 | uprow: {key: 'UP', code: 38}, 47 | downrow: {key: 'DOWN', code: 40}, 48 | foreigncreate: {key: 'x', code: 88}, 49 | foreignconnect: {key: 'c', code: 67}, 50 | zoomin: {key: '+', code: false}, 51 | zoomout: {key: '-', code: false} 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /js/globals.js: -------------------------------------------------------------------------------- 1 | function _(str) { /* getText */ 2 | if (!(str in window.LOCALE)) { 3 | return str; 4 | } 5 | return window.LOCALE[str]; 6 | } 7 | 8 | if (typeof String.prototype.endsWith !== 'function') { 9 | String.prototype.endsWith = function (suffix) { 10 | return this.indexOf(suffix, this.length - suffix.length) !== -1; 11 | }; 12 | } 13 | 14 | if (!String.prototype.trim) { 15 | String.prototype.trim = function () { 16 | return this.match(/^\s*([\s\S]*?)\s*$/)[1]; 17 | } 18 | } 19 | 20 | if (!String.trim) { 21 | String.trim = function (obj) { 22 | return String.prototype.trim.call(obj); 23 | } 24 | } 25 | 26 | if (!Object.create) { 27 | Object.create = function (o) { 28 | if (arguments.length > 1) { 29 | throw new Error("Object.create polyfill only accepts the first parameter"); 30 | } 31 | var tmp = function () {}; 32 | tmp.prototype = o; 33 | return new tmp(); 34 | }; 35 | } 36 | 37 | var DATATYPES = false; 38 | var LOCALE = {}; 39 | var SQL = { 40 | _subscribers: {}, 41 | publish: function (message, publisher, data) { 42 | var subscribers = this._subscribers[message] || []; 43 | var obj = { 44 | target: publisher, 45 | data: data 46 | }; 47 | subscribers.forEach(function (subscriber) { 48 | subscriber(obj); 49 | }); 50 | }, 51 | subscribe: function (message, subscriber) { 52 | if (!(message in this._subscribers)) { 53 | this._subscribers[message] = []; 54 | } 55 | var index = this._subscribers[message].indexOf(subscriber); 56 | if (index == -1) { 57 | this._subscribers[message].push(subscriber); 58 | } 59 | }, 60 | unsubscribe: function (message, subscriber) { 61 | var index = this._subscribers[message].indexOf(subscriber); 62 | if (index > -1) { 63 | this._subscribers[message].splice(index, 1); 64 | } 65 | }, 66 | escape: function (str) { 67 | return str.replace(/&/g, "&").replace(/>/g, ">").replace(/\n'; 55 | for (var i=0;i\n'; 58 | } 59 | xml += '\n'; 60 | return xml; 61 | } 62 | 63 | SQL.Key.prototype.fromXML = function(node) { 64 | this.setType(node.getAttribute("type")); 65 | this.setName(node.getAttribute("name")); 66 | var parts = node.getElementsByTagName("part"); 67 | for (var i=0;i 1) { return; } 52 | var event = e.touches[0]; 53 | } else { 54 | var event = e; 55 | } 56 | 57 | var dx = event.clientX - this.x; 58 | var dy = event.clientY - this.y; 59 | if (this.l + dx < 0) { dx = -this.l; } 60 | if (this.t + dy < 0) { dy = -this.t; } 61 | if (this.l + this.w + 4 + dx > this.width) { dx = this.width - 4 - this.l - this.w; } 62 | if (this.t + this.h + 4 + dy > this.height) { dy = this.height - 4 - this.t - this.h; } 63 | 64 | 65 | this.x += dx; 66 | this.y += dy; 67 | 68 | this.l += dx; 69 | this.t += dy; 70 | 71 | var coefX = this.width / this.owner.width; 72 | var coefY = this.height / this.owner.height; 73 | var left = this.l / coefX; 74 | var top = this.t / coefY; 75 | 76 | if (OZ.webkit) { 77 | document.body.scrollLeft = Math.round(left); 78 | document.body.scrollTop = Math.round(top); 79 | } else { 80 | document.documentElement.scrollLeft = Math.round(left); 81 | document.documentElement.scrollTop = Math.round(top); 82 | } 83 | 84 | this.redraw(); 85 | } 86 | 87 | SQL.Map.prototype.up = function(e) { /* mouseup */ 88 | this.flag = false; 89 | this.dom.container.style.cursor = ""; 90 | OZ.Event.remove(this.documentMove); 91 | OZ.Event.remove(this.documentUp); 92 | } 93 | 94 | SQL.Map.prototype.sync = function() { /* when window changes, adjust map */ 95 | var dims = OZ.DOM.win(); 96 | var scroll = OZ.DOM.scroll(); 97 | var scaleX = this.width / this.owner.width; 98 | var scaleY = this.height / this.owner.height; 99 | 100 | var w = dims[0] * scaleX - 4 - 0; 101 | var h = dims[1] * scaleY - 4 - 0; 102 | var x = scroll[0] * scaleX; 103 | var y = scroll[1] * scaleY; 104 | 105 | this.w = Math.round(w); 106 | this.h = Math.round(h); 107 | this.l = Math.round(x); 108 | this.t = Math.round(y); 109 | 110 | this.redraw(); 111 | } 112 | 113 | SQL.Map.prototype.redraw = function() { 114 | this.dom.port.style.width = this.w+"px"; 115 | this.dom.port.style.height = this.h+"px"; 116 | this.dom.port.style.left = this.l+"px"; 117 | this.dom.port.style.top = this.t+"px"; 118 | } 119 | -------------------------------------------------------------------------------- /js/options.js: -------------------------------------------------------------------------------- 1 | /* --------------------- options ------------ */ 2 | 3 | SQL.Options = function (owner) { 4 | this.owner = owner; 5 | this.dom = { 6 | container: OZ.$("opts"), 7 | btn: OZ.$("options") 8 | }; 9 | this.dom.btn.innerHTML = _("options"); 10 | this.save = this.save.bind(this); 11 | this.build(); 12 | } 13 | 14 | SQL.Options.prototype.build = function () { 15 | this.dom.optionlocale = OZ.$("optionlocale"); 16 | this.dom.optiondb = OZ.$("optiondb"); 17 | this.dom.optionsnap = OZ.$("optionsnap"); 18 | this.dom.optionpattern = OZ.$("optionpattern"); 19 | this.dom.optionhide = OZ.$("optionhide"); 20 | this.dom.optionvector = OZ.$("optionvector"); 21 | this.dom.optionshowsize = OZ.$("optionshowsize"); 22 | this.dom.optionshowtype = OZ.$("optionshowtype"); 23 | 24 | var ids = ["language", "db", "snap", "pattern", "hide", "vector", "showsize", "showtype", "optionsnapnotice", "optionpatternnotice", "optionsnotice"]; 25 | for (var i = 0; i < ids.length; i++) { 26 | var id = ids[i]; 27 | var elm = OZ.$(id); 28 | elm.innerHTML = _(id); 29 | } 30 | 31 | var ls = CONFIG.AVAILABLE_LOCALES; 32 | OZ.DOM.clear(this.dom.optionlocale); 33 | for (var i = 0; i < ls.length; i++) { 34 | var o = OZ.DOM.elm("option"); 35 | o.value = ls[i]; 36 | o.innerHTML = ls[i]; 37 | this.dom.optionlocale.appendChild(o); 38 | if (this.owner.getOption("locale") == ls[i]) { 39 | this.dom.optionlocale.selectedIndex = i; 40 | } 41 | } 42 | 43 | var dbs = CONFIG.AVAILABLE_DBS; 44 | OZ.DOM.clear(this.dom.optiondb); 45 | for (var i = 0; i < dbs.length; i++) { 46 | var o = OZ.DOM.elm("option"); 47 | o.value = dbs[i]; 48 | o.innerHTML = dbs[i]; 49 | this.dom.optiondb.appendChild(o); 50 | if (this.owner.getOption("db") == dbs[i]) { 51 | this.dom.optiondb.selectedIndex = i; 52 | } 53 | } 54 | 55 | 56 | OZ.Event.add(this.dom.btn, "click", this.click.bind(this)); 57 | 58 | this.dom.container.parentNode.removeChild(this.dom.container); 59 | }; 60 | 61 | SQL.Options.prototype.save = function () { 62 | this.owner.setOption("locale", this.dom.optionlocale.value); 63 | this.owner.setOption("db", this.dom.optiondb.value); 64 | this.owner.setOption("snap", this.dom.optionsnap.value); 65 | this.owner.setOption("pattern", this.dom.optionpattern.value); 66 | this.owner.setOption("hide", this.dom.optionhide.checked ? "1" : ""); 67 | this.owner.setOption("vector", this.dom.optionvector.checked ? "1" : ""); 68 | this.owner.setOption("showsize", this.dom.optionshowsize.checked ? "1" : ""); 69 | this.owner.setOption("showtype", this.dom.optionshowtype.checked ? "1" : ""); 70 | } 71 | 72 | SQL.Options.prototype.click = function () { 73 | this.owner.window.open(_("options"), this.dom.container, this.save); 74 | this.dom.optionsnap.value = this.owner.getOption("snap"); 75 | this.dom.optionpattern.value = this.owner.getOption("pattern"); 76 | this.dom.optionhide.checked = this.owner.getOption("hide"); 77 | this.dom.optionvector.checked = this.owner.getOption("vector"); 78 | this.dom.optionshowsize.checked = this.owner.getOption("showsize"); 79 | this.dom.optionshowtype.checked = this.owner.getOption("showtype"); 80 | } 81 | -------------------------------------------------------------------------------- /js/relation.js: -------------------------------------------------------------------------------- 1 | /* --------------------------- relation (connector) ----------- */ 2 | 3 | SQL.Relation = function(owner, row1, row2) { 4 | this.owner = owner; 5 | this.row1 = row1; 6 | this.row2 = row2; 7 | this.color = "#000"; 8 | this.hidden = false; 9 | SQL.Visual.apply(this); 10 | 11 | /* if one of the rows already has relations, inherit color */ 12 | var all = row1.relations.concat(row2.relations); 13 | if (all.length) { /* inherit */ 14 | this.color = all[0].getColor(); 15 | } else if (CONFIG.RELATION_COLORS) { /* pick next */ 16 | SQL.Relation._counter++; 17 | var colorIndex = SQL.Relation._counter - 1; 18 | this.color = CONFIG.RELATION_COLORS[colorIndex % CONFIG.RELATION_COLORS.length]; 19 | } 20 | 21 | this.row1.addRelation(this); 22 | this.row2.addRelation(this); 23 | this.dom = []; 24 | 25 | if (this.owner.vector) { 26 | var path = document.createElementNS(this.owner.svgNS, "path"); 27 | path.setAttribute("stroke", this.color); 28 | path.setAttribute("stroke-width", CONFIG.RELATION_THICKNESS); 29 | path.setAttribute("fill", "none"); 30 | this.owner.dom.svg.appendChild(path); 31 | this.dom.push(path); 32 | } else { 33 | for (var i=0;i<3;i++) { 34 | var div = OZ.DOM.elm("div",{position:"absolute",className:"relation",backgroundColor:this.color}); 35 | this.dom.push(div); 36 | if (i & 1) { /* middle */ 37 | OZ.Style.set(div, {width:CONFIG.RELATION_THICKNESS+"px"}); 38 | } else { /* first & last */ 39 | OZ.Style.set(div, {height:CONFIG.RELATION_THICKNESS+"px"}); 40 | } 41 | this.owner.dom.container.appendChild(div); 42 | } 43 | } 44 | 45 | this.redraw(); 46 | } 47 | SQL.Relation._counter = 0; 48 | SQL.Relation.prototype = Object.create(SQL.Visual.prototype); 49 | 50 | SQL.Relation.prototype.getColor = function() { 51 | return this.color; 52 | } 53 | 54 | SQL.Relation.prototype.show = function() { 55 | this.hidden = false; 56 | for (var i=0;i 2 | 3 | 4 | إنشاء جدول 5 | تحرير جدول 6 | حذف جدول 7 | محاذاة الجداول 8 | حذف جميع البيانات 9 | هل أنت متأكد من أنك تريد حذف جميع البيانات 10 | new table 11 | اختر المنطقة المحددة 12 | اسم الجول 13 | وصف الجدول 14 | 15 | 16 | إنشاء حقل 17 | تحرير حقل 18 | حذف حقل 19 | أعلى 20 | أسفل 21 | new field 22 | إنشاء مفتاح خارجي 23 | اختر الجدول المطلوب 24 | ربط حقل بمفتاح خارجي 25 | اختر الحقل المطلوب 26 | حذف مفتاح خارجي 27 | هل أنت متأكد من أنك تريد حذف الجدول 28 | هل أنت متأكد من أنك تريد حذف الحقل 29 | 30 | 31 | الإسم 32 | النوع 33 | الحجم 34 | الإفتراضي 35 | NOT NULL 36 | NULL 37 | ترقيم تلقائي 38 | تحرير تعليق 39 | اكتب تعليقاً لهذا الحقل 40 | 41 | 42 | موافق 43 | إلغاء 44 | يرجى الإنتظار ... 45 | الخيارات 46 | لغة العرض 47 | قاعدة البيانات المستخدمة لحفظ التصاميم 48 | بعض الخيارات يتم تفعيلها بعد تحديث الصفحة مع ملاحظة أنه يجب تفعيل (الكوكيز) لتعمل هذه الخيارات 49 | Table snap distance 50 | In pixels, 0 = disable snapping 51 | طريقة تنسيق أسماء المفاتيح الخارجية 52 | %T = الجدول الرئيسي, %R = المفتاح الرئيسي, %t = الجدول الخارجي 53 | إخفاء الخطوط عند تحريك الجدول؟ 54 | رسم خطوط ناعمة (إذا كان المتصفح يدعم ذلك) ؟ 55 | 56 | 57 | 58 | المفاتيح 59 | المفاتيح في الجدول "%s" 60 | الأنواع: 61 | الإسم: 62 | مفاتيح الجدول 63 | الحقول المتاحة 64 | تحرير مفتاح 65 | إنشاء مفتاح 66 | حذف مفتاح 67 | 68 | 69 | حفظ / تحميل 70 | قم بوضع بيانات نموذج XML في المربع أدناه، ثم حاول مرّة أخرى. 71 | العميل 72 | الخادم 73 | المدخلات / المخرجات 74 | حفظ كنموذح XML 75 | إستيراد نموذج XML 76 | حفظ كنموذج SQL 77 | Server backend: 78 | حفظ 79 | تحميل 80 | List items 81 | إستيراد من قاعدة بيانات 82 | Enter keyword under which your design was saved: 83 | Enter keyword under which your design will be saved: 84 | أدخل إسم قاعدة البيانات التي تريد إستيرادها: 85 | رد الخادم 86 | تم الحفظ بنجاح 87 | لم يتم العثور عليه 88 | خطأ داخلي في الخادم 89 | الخاصية غير موجودة 90 | الخدمة غير متوفرة 91 | 92 | 93 | خطأ في نموذح XML 94 | التوثيق 95 | 96 | 97 | -------------------------------------------------------------------------------- /locale/cs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Přidat tabulku 5 | Upravit tabulku 6 | Smazat tabulku 7 | Smazat tabulky 8 | Srovnat tabulky 9 | Zrušit tabulky 10 | Opravdu zrušit všechny tabulky 11 | nová tabulka 12 | umístit tabulku 13 | Jméno 14 | Komentář 15 | 16 | 17 | Přidat položku 18 | Upravit položku 19 | Smazat položku 20 | Nahoru 21 | Dolů 22 | nová položka 23 | Vyrobit cizí klíč 24 | klikni na cílovou tabulku 25 | Propojit cizí klíč 26 | klikni na cílové pole 27 | Smazat cizí klíč 28 | Opravdu smazat tabulku 29 | Opravdu smazat položku 30 | 31 | 32 | Jméno 33 | Typ 34 | Velikost 35 | Výchozí 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Upravit komentář 40 | VLožte komentář pro tuto položku 41 | 42 | 43 | OK 44 | Storno 45 | Prosím čekejte... 46 | Nastavení 47 | Jazyk 48 | Databáze pro nová schémata 49 | Některá nastavení se projeví až po znovunačtení stránky. Aby nastavení fungovala, je nutné mít zapnuté cookies. 50 | Vzdálenost přichytávání tabulek 51 | V pixelech, 0 = bez přichytávání 52 | Vzor pro cizí jména 53 | %T = primární tabulka, %R = primární klíč, %t = cizí tabulka 54 | Schovat spojovníky při tažení tabulkou? 55 | Vykreslovat oblé spojovníky (pakliže to prohlížeč podporuje)? 56 | Zobrazovat velikost polí v tabulce? 57 | Zobrazovat datový typ polí v tabulce? 58 | 59 | 60 | Klíče 61 | Klíče v tabulce "%s" 62 | Typ: 63 | Název: 64 | Položky v klíči 65 | Dostupné položky 66 | Upravit klíč 67 | Přidat klíč 68 | Smazat klíč 69 | 70 | 71 | Uložit / Načíst 72 | Prosím vložte XML data do textového pole níže. 73 | Klient 74 | Server 75 | Vstup / Výstup 76 | Uložit XML 77 | Načíst XML 78 | Uložit v prohlížeči 79 | Načíst z prohlížeče 80 | Generovat SQL 81 | Server backend: 82 | Uložit 83 | Rychle uložit 84 | Načíst 85 | Vypsat položky 86 | Importovat z databáze 87 | Zadejte označení, pod kterým bylo vaše schéma uloženo: 88 | Zadejte označení, pod kterým bude vaše schéma uloženo: 89 | Zadejte název databáze k importu: 90 | Odpověď od serveru 91 | Uloženo 92 | Neexistuje 93 | Vnitřní chyba serveru 94 | Není implementováno 95 | Služba není dostupná 96 | 97 | 98 | XML chyba 99 | Dokumentace 100 | 101 | 102 | -------------------------------------------------------------------------------- /locale/de.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tabelle hinzufügen 5 | Tabelle bearbeiten 6 | Tabelle entfernen 7 | Tabellen entfernen 8 | Tabellen ausrichten 9 | Tabellen löschen 10 | Wirklich alle Tabellen löschen 11 | Neue Tabelle 12 | Tabelle platzieren 13 | Name 14 | Kommentar 15 | 16 | 17 | Feld hinzufügen 18 | Feld bearbeiten 19 | Feld entfernen 20 | Hoch 21 | Runter 22 | Neues Feld 23 | Fremdschlüssel erstellen 24 | Ziel-Tabelle wählen 25 | Fremdschlüssel Verknüpfung 26 | Ziel-Zeile auswählen 27 | Ziel-Zeile entfernen 28 | Tabelle wirklich löschen 29 | Feld wirklich löschen 30 | 31 | 32 | Name 33 | Typ 34 | Größe 35 | Default 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Kommentar bearbeiten 40 | Kommentar zu diesem Feld eintragen: 41 | 42 | 43 | OK 44 | Abbrechen 45 | Bitte warten... 46 | Einstellungen 47 | Sprache 48 | Datenbank für neue Diagramme 49 | Einige Optionen werden erst nach einem erneutem Seitenaufruf wirksam. Cookies müssen erlaubt sein. 50 | Tabellen Ausrichtungsabstand 51 | in Pixel, 0 = einrasten deaktivieren 52 | Format für die Namen der Fremdschlüssel 53 | %T = Primärtabelle, %R = Primärschlüssel, %t = Fremdtabelle 54 | Verstecke Verbindungslinien beim Bewegen von Tabellen? 55 | Zeichne gekrümmte Verbindungslinien (Browser-abhängig)? 56 | Zeige Feldgröße im Tabellendesign? 57 | Zeige Felddatentyp im Tabellendesign? 58 | 59 | 60 | Schlüssel 61 | Schlüssel in Tabelle "%s" 62 | Typ: 63 | Name: 64 | Felder im Schlüssel 65 | Verfügbare Felder 66 | Schlüssel bearbeiten 67 | Schlüssel hinzufügen 68 | Schlüssel entfernen 69 | 70 | 71 | Speichern / Laden 72 | Bitte fügen Sie die XML-Daten in das untere Textfeld ein und versuchen Sie es erneut. 73 | Client 74 | Server 75 | Eingabe / Ausgabe 76 | XML speichern 77 | XML laden 78 | In Browser speichern 79 | Von Browser laden 80 | Von Browser auflisten 81 | In Dropbox speichern 82 | Von Dropbox laden 83 | Von Dropbox auflisten 84 | SQL erzeugen 85 | Server Basis: 86 | Speichern 87 | Schnellspeichern 88 | Laden 89 | Einträge auflisten 90 | Import aus DB 91 | Geben Sie das Stichwort ihres Diagramms ein, unter dem es gespeichert wurde: 92 | Geben Sie das Stichwort ihres Diagramms ein, unter dem es gespeichert werden soll: 93 | Geben Sie den Namen der zu importierenden Datenbank ein: 94 | Server Antwort 95 | gespeichert 96 | Nicht gefunden 97 | Interner Server Fehler 98 | Nicht implementiert 99 | Dienst nicht erreichbar 100 | 101 | 102 | XML Fehler 103 | Dokumentation 104 | 105 | 106 | -------------------------------------------------------------------------------- /locale/el.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Προσθήκη πίνακα 5 | Επεξεργασία πίνακα 6 | Διαγραφή πίνακα 7 | Διαγραφή πινάκων 8 | Στοίχιση Πινάκων 9 | Καθαρισμός πινάκων 10 | Διαγραφή όλων των πινάκων 11 | Νέος πίνακας 12 | τοποθέτηση πίνακα 13 | Όνομα 14 | Σχόλιο 15 | 16 | 17 | Προσθήκη πεδίου 18 | Επεξεργασία πεδίου 19 | Διαγραφή πεδίου 20 | Πάνω 21 | Κάτω 22 | νέο πεδίο 23 | Δημιουργία ξένου κλειδιού 24 | Κάντε κλικ στο άλλο πίνακα 25 | Σένδεση ξένου κλειδιού 26 | Κάντε κλικ στη γραμμή 27 | Κάντε κλικ πεδίου 28 | Διαγραφή πίνακα. Είστε σίγουρος 29 | Διαγραφή πεδίου. Είστε σίγουρος 30 | 31 | 32 | Όνομα 33 | Τύπος 34 | Μέγεθος 35 | Προεπιλογή 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Επεξεργασία σχολίου 40 | Σχολιάστε γι' αυτό το πεδίο 41 | 42 | 43 | OK 44 | Άκυρο 45 | Παρακαλώ περιμένετε... 46 | Επιλογές 47 | Γλώσσα 48 | Βάση δεδομένων για νέα σχέδιαγράμματα 49 | Μερικές επιλογές ενεργοποιούνται μόνο μετά από καθολική ανανέωση της σελίδας.Τα Cookies πρέπει να είναι ενεργοποιημένα για να λειτουργούν οι επιλογές. 50 | Απόσταση πινάκων 51 | Σε pixels, 0 = απενεργοποίηση απόστασης 52 | Πρότυπο για ξένα κλειδιά 53 | %T = πρωτεύων πίνακας, %R = προτεύον κλειδί, %t = ξένος πίνακας 54 | Απόκρυψη συνδέσμων όταν σύρονται οι πίνακες; 55 | Διάγραμμα με ομαλούς συνδέσμους(αν παρέχεται από τον περιηγητή); 56 | 57 | 58 | 59 | Κλειδιά 60 | Κλειδιά στον πίνακα "%s" 61 | Τύπος: 62 | Όνομα: 63 | Πεδία σε κλειδιά 64 | Διαθέσιμα πεδία 65 | Επεξεργασία κλειδιού 66 | Προσθήκη κλειδιού 67 | Διαγραφή κλειδιού 68 | 69 | 70 | Αποθήκ./Άνοιγμα 71 | Κάντε επικόλληση των δεδομένων XML στο πεδίο κειμένου παρακάτω και δοκιμάστε ξανά. 72 | Πελάτης 73 | Διακομιστής 74 | Εισαγωγή/Εξαγωγή 75 | Αποθήκευση XML 76 | Άνοιγμα XML 77 | Δημιουργία SQL 78 | Διακομιστής: 79 | Αποθήκευση 80 | Άνοιγμα 81 | Εμφάνιση λίστας 82 | Εισαγωγή από βάση δεδομένων 83 | Πληκτρολογήστε το τίτλο του αποθηκευμένου σχεδιαγράμματος: 84 | Πληκτρολογήστε το τίτλο για την αποθήκευση του σχεδιαγράμματος: 85 | Δώστς όνομα βάσης δεδομένων για εισαγωγή: 86 | Απάντηση διακομιστή 87 | Αποθηκεύθηκε 88 | Δεν βρέθηκε 89 | Εσωτερικό σφάλμα διακομιστή 90 | Χωρίς σχεδίαση 91 | Μη-διαθέσιμη Παροχή 92 | 93 | 94 | Σφάλμα XML 95 | Οδηγίες 96 | 97 | 98 | -------------------------------------------------------------------------------- /locale/en.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Add table 5 | Edit table 6 | Remove table 7 | Remove tables 8 | Align tables 9 | Clear tables 10 | Really delete all tables 11 | new table 12 | Place table 13 | Name 14 | Comment 15 | 16 | 17 | Add field 18 | Edit field 19 | Remove field 20 | Up 21 | Down 22 | new field 23 | Create foreign key 24 | Click target table 25 | Connect foreign key 26 | Click target row 27 | Remove foreign key 28 | Really delete table 29 | Really delete field 30 | 31 | 32 | Name 33 | Type 34 | Size 35 | Default 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Edit comment 40 | Enter comment for this field 41 | 42 | 43 | OK 44 | Cancel 45 | Please wait... 46 | Options 47 | Language 48 | Database for new designs 49 | Some options are applied only after full page reload. Cookies must be enabled for options to work. 50 | Table snap distance 51 | In pixels, 0 = disable snapping 52 | Pattern for foreign names 53 | %T = primary table, %R = primary key, %t = foreign table 54 | Hide connectors on table drag? 55 | Draw smooth connectors (if supported by browser)? 56 | Show field size in table design? 57 | Show field datatype in table design? 58 | 59 | 60 | Keys 61 | Keys in table "%s" 62 | Type: 63 | Name: 64 | Fields in key 65 | Available fields 66 | Edit key 67 | Add key 68 | Remove key 69 | 70 | 71 | Save / Load 72 | Please paste XML data into the text area below and try again. 73 | Client 74 | Server 75 | Input / Output 76 | Save XML 77 | Load XML 78 | Save in Browser 79 | Load from Browser 80 | List from Browser 81 | Save to Dropbox 82 | Load from Dropbox 83 | List from Dropbox 84 | Generate SQL 85 | Server backend: 86 | Save 87 | Quicksave 88 | Load 89 | List items 90 | Import from DB 91 | Enter keyword under which your design was saved: 92 | Enter keyword under which your design will be saved: 93 | Enter name of database to be imported: 94 | Server response 95 | Saved 96 | Not Found 97 | Internal Server Error 98 | Not Implemented 99 | Service Unavailable 100 | 101 | 102 | XML error 103 | Documentation 104 | 105 | 106 | -------------------------------------------------------------------------------- /locale/eo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Aldoni tabelon 5 | Modifi la tabelon 6 | Forigi la tabelon 7 | Forigi la tabelojn 8 | Ĝisrandigi la tabelojn 9 | Vakigi la tabelon 10 | Ja forigi ĉiujn tabelojn 11 | nova tabelo 12 | pozicii la tabelon 13 | Nomo 14 | Komento 15 | 16 | 17 | Aldoni kampon 18 | Modifi la kampon 19 | Forigi la kampon 20 | Supre 21 | Sube 22 | nova kampo 23 | Krei fremdan ŝlosilon 24 | alklaki la celan tabelon 25 | Konekti fremdan ŝlosilon 26 | alklaki la celan atributon 27 | Forigi fremdan ŝlosilon 28 | Ja forigi la tabelon 29 | Ja forigi la kampon 30 | 31 | 32 | Nomo 33 | Tipo 34 | Grandeco 35 | Defaŭlte 36 | NE NUL 37 | Senvalora 38 | Memalkremento 39 | Modifi la komenton 40 | Entajpi komenton por tiu kampo 41 | 42 | 43 | Jes 44 | Rezigni 45 | Bonvolu atendi... 46 | Agordoj 47 | Lingvo 48 | Datumbazoj por novaj kreoj 49 | Kelkaj agordoj estas aplikotaj post plena ŝarĝo de paĝo. Kuketoj devas esti ebligataj por ke la agordoj funkcias. 50 | Kapto-distanco de tabelo 51 | En rastrumeroj, 0 = malebligi kapton 52 | Motivo por fremdaj nomoj 53 | %T = ĉefa tabelo, %R = ĉefa ŝlosilo, %t = fremda tabelo 54 | Ĉu kaŝi konektiloj dum treno de tabelo? 55 | Desegni glatajn konektilojn (se subtenata de retumilo)? 56 | Show field size in table design? 57 | Show field datatype in table design? 58 | 59 | 60 | Klavoj 61 | Ŝlosiloj en la tabelo "%s" 62 | Tipo: 63 | Nomo: 64 | Kampoj en klavo 65 | Disponeblaj kampoj 66 | Modifi ŝlosilon 67 | Aldoni ŝlosilon 68 | Forigi ŝlosilon 69 | 70 | 71 | Konservi / Ŝargi 72 | Bonvolu alglui XML datumon en la tekst-zono sube kaj provi de nove. 73 | Kliento 74 | Servilo 75 | Enigo / Eligo 76 | Konservi XML 77 | Ŝargi XML 78 | Krei SQL 79 | Servila administro: 80 | Konservi 81 | Quicksave 82 | Ŝargi 83 | Listigi erojn 84 | Importi el datumbazo 85 | Entajpi ŝlosilvorton per kiu via fasonado estis konservita: 86 | Entajpi ŝlosilvorton per kiu via fasonado estos konservita: 87 | Entajpi la nomon de datumbazo importenda: 88 | Respondo de servilo 89 | Konservita 90 | Netrovita 91 | Interna Servilo Eraro 92 | Ne funkciigata 93 | Servo Nedisponebla 94 | 95 | 96 | XML-eraro 97 | Dokumentaro 98 | 99 | 100 | -------------------------------------------------------------------------------- /locale/es.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Agregar tabla 5 | Editar tabla 6 | Remover tabla 7 | Remover tablas 8 | Alinear tablas 9 | Limpiar tablas 10 | Realmente borrar todas las tablas 11 | Nueva tabla 12 | Posicionar tabla 13 | Nombre 14 | Comentario 15 | 16 | 17 | Agregar campo 18 | Editar campo 19 | Remover campo 20 | Arriba 21 | Abajo 22 | Nuevo campo 23 | Crear llave foránea 24 | Conectar llave foránea 25 | Conectar llave foránea 26 | Hacer clic en el registro 27 | Remover llave foránea 28 | Realmente borrar tabla 29 | Realmente borrar campo 30 | 31 | 32 | Nombre 33 | Tipo 34 | Tamaño 35 | Valor por predeterminado 36 | NOT NULL 37 | NULL 38 | Auto incremento 39 | Editar comentario 40 | Entrar comentario para este campo 41 | 42 | 43 | Aceptar 44 | Cancelar 45 | Por favor esperar... 46 | Opciones 47 | Lenguaje 48 | Base de datos para nuevos diseños 49 | Algunas opciones son aplicadas solo despúes de recargar totalmente la pagina. Las cookies deben estar 50 | habilitadas para opciones de trabajo. 51 | Tabla acceso remoto 52 | En píxeles, 0 = deshabilitar acceso remoto 53 | Patrón para nombres foráneos 54 | %T = tabla primaria, %R = llave primaria, %t = tabla foránea 55 | Esconder conectores en la tabla al arrastrar? 56 | Dibujar conectores suave (si son soportados por el navegador)? 57 | 58 | 59 | 60 | Llaves 61 | Llaves en la tabla "%s" 62 | Tipo: 63 | Nombre: 64 | Campos en la llave 65 | Campos disponibles 66 | Editar llave 67 | Agregar llave 68 | Remover llave 69 | 70 | 71 | Guardar / Cargar 72 | Favor de pegar el XML dentro del área de texto siguiente e intentar nuevamente. 73 | Cliente 74 | Servidor 75 | Entrada / Salida 76 | Guardar XML 77 | Cargar XML 78 | Generar SQL 79 | Servidor backend: 80 | Guardar 81 | Cargar 82 | Lista de articulos 83 | Importar desde BD 84 | Entrar palabra bajo la cual tu diseño fue guardado: 85 | Entrar palabra bajo la cual tu diseño va a ser guardado: 86 | Entrar nombre de base de datos a ser importada: 87 | Respuesta del servidor 88 | Guardado 89 | No Encontrado 90 | Error Interno del Servidor 91 | No Implementado 92 | Servicio No Disponible 93 | 94 | 95 | XML error 96 | Documentación 97 | 98 | 99 | -------------------------------------------------------------------------------- /locale/fr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ajouter une table 5 | Éditer la table 6 | Supprimer la table 7 | Supprimer les tables 8 | Aligner les tables 9 | Supprimer les tables 10 | Vraiment supprimer toutes les tables 11 | nouvelle table 12 | positionner la table 13 | Nom 14 | Commentaire 15 | 16 | 17 | Ajouter un champ 18 | Éditer un champ 19 | Supprimer le champ 20 | Remonter 21 | Descendre 22 | Éditer un champ 23 | Créer une clé étrangère 24 | Cliquez la destination 25 | Connecter une clé étrangère 26 | Cliquez la propriété cible 27 | Supprimer la clé étrangère 28 | Voulez-vous vraiment supprimer cette table ? 29 | Voulez-vous vraiment supprimer ce champ ? 30 | 31 | 32 | Nom 33 | Type 34 | Taille 35 | Défaut 36 | NON NUL 37 | valeur nulle 38 | Auto-incrémental 39 | Éditer le commentaire 40 | Saisir un commentaire à propos de ce champ 41 | 42 | 43 | OK 44 | Annuler 45 | Veuillez patienter... 46 | Options 47 | Langue 48 | Format des nouvelles base de données 49 | Ces options ne seront appliquées qu'après le rafraichissement complet de la page. Les cookies doivent être autorisés. 50 | Magnétisme des tables 51 | En pixels, 0 = magnétisme désactivé 52 | Motif pour les noms de clés étrangères 53 | %T = table primaire, %R = clé primaire, %t = table étrangère 54 | Cacher les connecteurs lors du déplacement des tables ? 55 | Dessiner des connecteurs « adoucis » (si le navigateur le supporte) ? 56 | Afficher la taille du champ dans le schéma de table ? 57 | Afficher le type du champ dans le schéma de table ? 58 | 59 | 60 | Clés 61 | Clés dans la table « %s » 62 | Type : 63 | Nom : 64 | Champs de clé 65 | Champs disponibles 66 | Éditer la clé 67 | Ajouter une clé 68 | Supprimer la clé 69 | 70 | 71 | Enregistrer / Charger 72 | Merci de coller les données XML dans le champs prévu avant de ré-essayer. 73 | Client 74 | Serveur 75 | Entrée / Sortie 76 | Enregistrer XML 77 | Charger XML 78 | Enregistrer dans le navigateur 79 | Charger depuis le navigateur 80 | Lister depuis le navigateur 81 | Génerer SQL 82 | Méthode du serveur : 83 | Enregistrer 84 | Enregistrer rapidement 85 | Charger 86 | Éléments disponibles 87 | Importer d'une base de données 88 | Saisir le mot-clé de votre schéma : 89 | Saisir un mot-clé pour sauvegarder votre schéma : 90 | Saisir le nom de la base de données à importer : 91 | Réponse du serveur 92 | Sauvegardé 93 | Introuvable 94 | Erreur interne du serveur 95 | Non Implementé 96 | Service indisponible 97 | 98 | 99 | Erreur XML 100 | Documentation 101 | 102 | 103 | -------------------------------------------------------------------------------- /locale/hu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tábla létrehozása 5 | Tábla módosítása 6 | Tábla törlése 7 | Táblak törlése 8 | Táblák rendezése 9 | Táblák törlése 10 | Valóban töröljem az összes táblát 11 | tábla létrehozása 12 | tábla elhelyezése 13 | Név 14 | Megjegyzés 15 | 16 | 17 | Mező létrehozása 18 | Mező módosítása 19 | Mező törlése 20 | Fel 21 | Le 22 | új mező 23 | Idegen kulcs létrehozása 24 | kattintson a cél-táblára 25 | Idegen kulcs kapcsolása 26 | kattintson a cél-mezőre 27 | Mező kulcs létrehozása 28 | Valóban töröljem a táblát 29 | Valóban töröljem a mezőt 30 | 31 | 32 | Név 33 | Típus 34 | Méret 35 | Alapérték 36 | NOT NULL 37 | NULL 38 | Automatikus növelés 39 | Megjegyzés módosítása 40 | Írjon megjegyzést ehhez a mezőhöz 41 | 42 | 43 | OK 44 | Mégsem 45 | Kérem várjon... 46 | Beállítások 47 | Nyelv 48 | Adatbázis az új terveknek 49 | Egyes beállítások csak az oldal teljes újratöltése után érvényesülnek. A munkához szükséges engedélyezni a sütiket (cooky-kat). 50 | Táblák illesztési távolsága 51 | Pixel-ben megadva, 0 = illesztés tiltása 52 | Idegen nevek sablonja 53 | %T = elsődleges tábla, %R = elsődleges kulcs, %t = idegen tábla 54 | Elrejtsem a kapcsolókat a rajztáblán? 55 | Kapcsolók finom kirajzolása (ha a böngésző lehetővé teszi)? 56 | 57 | 58 | 59 | Kulcsok 60 | Kulcsok a "%s" táblában 61 | Típus: 62 | Név: 63 | A kulcs mezői 64 | Elérhető mezők 65 | Kulcs módosítása 66 | Kulcs létrehozása 67 | Kulcs törlése 68 | 69 | 70 | Mentés / Beolvasás 71 | Kérem illessze be az XML-tartalmat az alábbi szöveges mezőbe, és próbálja újra. 72 | Kliens 73 | Szerver 74 | Bemenet / Kimenet 75 | XML mentése 76 | XML beolvasása 77 | SQL generálása 78 | Szerver végpont: 79 | Mentés 80 | Betöltés 81 | Tételek listázása 82 | Importálás adatbázisból 83 | Írja be a kulcsszót, amely alapján a tervet elmentette: 84 | Írja be a kulcsszót, amely alapján a tervet el szeretné menteni: 85 | Írja be az importálandó adatbázis nevét: 86 | A szerver válasza 87 | Elmentve 88 | Nem találom 89 | Belső szerver hiba 90 | Nem lett végrehajtva 91 | Szolgáltatás nem elérhető 92 | 93 | 94 | XML hiba 95 | Dokumentáció 96 | 97 | 98 | -------------------------------------------------------------------------------- /locale/icons.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | add]]> 5 | edit]]> 6 | delete]]> 7 | clear_all]]> 8 | view_column]]> 9 | clear_all]]> 10 | Really delete all tables 11 | new table 12 | clear]]> 13 | Name 14 | Comment 15 | 16 | 17 | Add field 18 | Edit field 19 | Remove field 20 | Up 21 | Down 22 | new field 23 | Create foreign key 24 | click target table 25 | Connect foreign key 26 | click target row 27 | Remove foreign key 28 | Really delete table 29 | Really delete field 30 | 31 | 32 | Name 33 | Type 34 | Size 35 | Default 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Edit comment 40 | Enter comment for this field 41 | 42 | 43 | OK 44 | Cancel 45 | Please wait... 46 | Options 47 | Language 48 | Database for new designs 49 | Some options are applied only after full page reload. Cookies must be enabled for options to work. 50 | Table snap distance 51 | In pixels, 0 = disable snapping 52 | Pattern for foreign names 53 | %T = primary table, %R = primary key, %t = foreign table 54 | Hide connectors on table drag? 55 | Draw smooth connectors (if supported by browser)? 56 | Show field size in table design? 57 | Show field datatype in table design? 58 | 59 | 60 | Keys 61 | Keys in table "%s" 62 | Type: 63 | Name: 64 | Fields in key 65 | Available fields 66 | Edit key 67 | Add key 68 | Remove key 69 | 70 | 71 | Save / Load 72 | Please paste XML data into the text area below and try again. 73 | Client 74 | Server 75 | Input / Output 76 | Save XML 77 | Load XML 78 | Save in Browser 79 | Load from Browser 80 | List from Browser 81 | Save to Dropbox 82 | Load from Dropbox 83 | List from Dropbox 84 | Generate SQL 85 | Server backend: 86 | Save 87 | Quicksave 88 | Load 89 | List items 90 | Import from DB 91 | Enter keyword under which your design was saved: 92 | Enter keyword under which your design will be saved: 93 | Enter name of database to be imported: 94 | Server response 95 | Saved 96 | Not Found 97 | Internal Server Error 98 | Not Implemented 99 | Service Unavailable 100 | 101 | 102 | XML error 103 | Documentation 104 | 105 | 106 | -------------------------------------------------------------------------------- /locale/it.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Aggiungi tabella 5 | Modifica tabella 6 | Elimina tabella 7 | Elimina tabelle 8 | Allinea tabelle 9 | Cancella tabelle 10 | Eliminare veramente le tabelle 11 | nuova tabella 12 | posiziona la tabella 13 | Nome 14 | Oggetto 15 | 16 | 17 | Aggiungi campo 18 | Modifica campo 19 | Elimina campo 20 | Su 21 | Giù 22 | nuovo campo 23 | Crea chiave esterna 24 | fai clic sulla destinazione 25 | Connetti chiave esterna 26 | fai clic sulla riga di destinazione 27 | Rimuovi chiave esterna 28 | Cancellare veramente la tabella 29 | Cancellare veramente la riga 30 | 31 | 32 | Nome 33 | Tipo 34 | Dimensione 35 | Predefinito 36 | QUALCOSA 37 | NULL 38 | Autoincremento 39 | Modifica commento 40 | Inserisci commento per questo campo 41 | 42 | 43 | Conferma 44 | Annulla 45 | Attendere... 46 | Opzioni 47 | Lingua 48 | Database per nuovi progetti 49 | Alcune opzioni diventano attive solo dopo il ricaricamento della pagina. Affinché le opzioni vengano mantenute, devono essere abilitati i cookies. 50 | Griglia magnetica 51 | In pixel, 0 = magnetismo disabilitato 52 | Modello per le chiavi esterne 53 | %T = tabella principale, %R = chiave primaria, %t = tabella secondaria 54 | Nascondi i connettori durante il trascinamento? 55 | Disegna connettori arrotondati (se supportato dal browser)? 56 | Show field size in table design? 57 | Show field datatype in table design? 58 | 59 | 60 | Chiavi 61 | Chiavi nella tabella "%s" 62 | Tipo: 63 | Nome: 64 | Campi nella chiave 65 | Campi disponibili 66 | Modifica chiave 67 | Aggiungi chiave 68 | Rimuovi chiave 69 | 70 | 71 | Salva / Carica 72 | Reincolla i dati XML nell'area sottostante e prova di nuovo. 73 | Intestatario 74 | Server 75 | Ingresso / Uscita 76 | Salva XML 77 | Carica XML 78 | Genera SQL 79 | Server di backend: 80 | Salva 81 | Quicksave 82 | Carica 83 | Elenca elementi 84 | Importa dal DB 85 | Inserisci la parola chiave con cui è stato salvato il progetto: 86 | Inserisci la parola chiave con cui salvare il progetto: 87 | Inserisci il nome del database da importare 88 | Risposta del server 89 | Salvato 90 | Non trovato 91 | Errore interno del server 92 | Non implementato 93 | Servizio non disponibile 94 | 95 | 96 | Errore XML 97 | Documentazione 98 | 99 | 100 | -------------------------------------------------------------------------------- /locale/ja.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | テーブルを追加 5 | テーブルを編集 6 | テーブルを削除 7 | テーブルを整列 8 | 全テーブルを削除 9 | 全テーブルを削除しますか 10 | 新規テーブル 11 | テーブルを配置 12 | テーブル名 13 | コメント 14 | 15 | 16 | 列を追加 17 | 列を編集 18 | 列を削除 19 | 上に 20 | 下に 21 | 新規列 22 | 外部キーとして移動 23 | 対象テーブルを選択 24 | 外部キーを接続 25 | 対象列を選択 26 | 外部キーを削除 27 | テーブルを削除しますか 28 | 列を削除しますか 29 | 30 | 31 | 列名 32 | 33 | サイズ 34 | デフォルト値 35 | NOT NULL 36 | NULL 37 | 自動採番 38 | コメントを編集 39 | 列のコメントを入力 40 | 41 | 42 | OK 43 | キャンセル 44 | しばらくお待ちください... 45 | オプション 46 | 言語 47 | 新しい設計で使用するデータベース 48 | 印は再読込後に反映されるオプションです。これらを動作させるにはクッキーを有効にしてください。 49 | テーブルのスナップ単位 50 | ピクセル(0 = スナップ無効) 51 | 外部キーの命名規則 52 | %T = 親テーブル, %R = プライマリーキー, %t = 子テーブル 53 | テーブルをドラッグ中は線を隠す 54 | 滑らかな線を使う(要ブラウザのサポート) 55 | 56 | 57 | 58 | キーの設定 59 | テーブル"%s"のキー 60 | 種類: 61 | キー名: 62 | キーの対象列 63 | 選択可能な列 64 | キーを編集 65 | キーを追加 66 | キーを削除 67 | 68 | 69 | 保存/読み込み 70 | 下の入出力欄にXMLデータを貼りつけてから実行してください。 71 | クライアント 72 | サーバ 73 | 入力出欄 74 | XMLを出力 75 | XMLを読込 76 | SQLを生成 77 | サーバのバックエンド: 78 | 保存 79 | 読込 80 | 一覧 81 | DBからインポート 82 | 読み込む設計名を入力してください: 83 | 保存する設計名を入力してください: 84 | インポートするDB名を入力してください: 85 | サーバレスポンス 86 | Saved 87 | Not Found 88 | Internal Server Error 89 | Not Implemented 90 | Service Unavailable 91 | 92 | 93 | XMLエラー 94 | ドキュメント 95 | 96 | 97 | -------------------------------------------------------------------------------- /locale/nl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tabel toevoegen 5 | Bewerk tabel 6 | Verwijder tabel 7 | Verwijder tabellen 8 | Uitlijnen tabellen 9 | Tabellen schonen 10 | Wilt u echt alle tabellen verwijderen 11 | Nieuwe tabel 12 | Positioneer tabel 13 | Naam 14 | Opmerkingen 15 | 16 | 17 | Veld toevoegen 18 | Veld bewerken 19 | Veld verwijderen 20 | Op 21 | Neer 22 | nieuwe veld 23 | Maak relatie 24 | Click op doeltabel 25 | Verbind relatie 26 | Click op doelveld 27 | Verwijder relatie 28 | Tabel verwijderen? 29 | Veld verwijderen? 30 | 31 | 32 | Naam 33 | Type 34 | Omvang 35 | Standaard 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Bewerk opmerkingen 40 | Geef opmerkingen voor dit veld 41 | 42 | 43 | OK 44 | Annuleer 45 | Even geduld... 46 | Opties 47 | Taal 48 | Database voor nieuwe ontwerpen 49 | Sommige opties worden pas geldig na het volledig opnieuw laden van de pagina. Cookies moeten zijn toegestaan voor een juiste werking. 50 | Tabel snap afstand 51 | In pixels, 0 = uitzetten snap 52 | Patroon voor relatie velden 53 | %T = primaire tabel, %R = primaire sleutel, %t = verwezen tabel. 54 | Verberg relaties tijdens verplaatsen van de tabel? 55 | Teken gekromde relaties (als de browser dit ondersteund)? 56 | Toon veld omvang in tabelontwerp? 57 | Toon veld type in tabelontwerp? 58 | 59 | 60 | Sleutels 61 | Sleutels in tabel "%s" 62 | Type: 63 | Naam: 64 | Velden in sleutel 65 | Beschikbare velden 66 | Bewerk sleutel 67 | Voeg sleutel toe 68 | Verwijder sleutel 69 | 70 | 71 | Opslaan / laden 72 | Please paste XML data into the text area below and try again. 73 | Lokaal 74 | Server 75 | Input / Output 76 | XML Opslaan 77 | XML Laden 78 | Opslaan in Browser 79 | Laden uit Browser 80 | Genereer SQL 81 | Server: 82 | Opslaan 83 | Snel opslaan 84 | Laden 85 | Toon lijst 86 | Import uit DB 87 | Enter keyword under which your design was saved: 88 | Enter keyword under which your design will be saved: 89 | Enter name of database to be imported: 90 | Reactie van server 91 | Opgeslagen 92 | Niet gevonden 93 | Interne Server Fout 94 | Niet geimplementeerd 95 | Niet beschikbaar 96 | 97 | 98 | XML fout 99 | Documentatie 100 | 101 | 102 | -------------------------------------------------------------------------------- /locale/pl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dodaj tabelę 5 | Edytuj tabelę 6 | Usuń tabelę 7 | Usuń tabele 8 | Wyrównaj tabele 9 | Wyczyść tabele 10 | Czy na pewno usunąć wszystkie tabele 11 | nowa tabela 12 | miejsce tabeli 13 | Nazwa 14 | Opis 15 | 16 | 17 | Dodaj pole 18 | Edytuj pole 19 | Usuń pole 20 | W górę 21 | W dół 22 | nowe pole 23 | Utwórz klucz zewnętrzny 24 | kliknij w docelową tabelę 25 | Utwórz klucz zewnętrzny 26 | kliknij w docelową tabelę 27 | Smazat cizí klíč 28 | Czy na pewno usunąć tabelę 29 | Czy na pewno usunąć pole 30 | 31 | 32 | Nazwa 33 | Typ 34 | Rozmiar 35 | Domyślnie 36 | Niepuste 37 | Zerowy 38 | Automatyczne zwiększanie o 1 39 | Edytuj komentarz 40 | Wpisz komentarz dla tego pola 41 | 42 | 43 | OK 44 | Anuluj 45 | Proszę czekać... 46 | Opcje 47 | Język 48 | Bazy danych dla nowych projektów 49 | Niektóre opcje są zatwierdzane wyłącznie po kompletnym przeładowaniu strony. Ciasteczka muszą być akceptowane dla działania opcji. 50 | Ustalana odległość tabel 51 | W pikselach, 0 = wyłącznie ustalania 52 | Wzorzec dla zewnętrznych nazw 53 | %T = główna tabela, %R = klucz główny, %t = zewnętrzna tabela 54 | Ukryć złącza w tabeli podczas przeciągania? 55 | Rysuj pływające złącza (jesli wsperane jest przez przeglądarkę)? 56 | Show field size in table design? 57 | Show field datatype in table design? 58 | 59 | 60 | Klucze 61 | Klucze w tabeli "%s" 62 | Typ: 63 | Nazwa: 64 | Pola w kluczu 65 | Dostępne pola 66 | Edytuj klucz 67 | Dodaj klucz 68 | Usuń klucz 69 | 70 | 71 | Zapisz / Otwórz 72 | Proszę wklej kod XML w poniższe pole tekstowe i spróbuj ponownie. 73 | Klient 74 | Serwer 75 | Wejście / Wyjście 76 | Zapisz XML 77 | Załaduj XML 78 | Generuj SQL 79 | Serwer wejściowy: 80 | Zapisz 81 | Quicksave 82 | Otwórz 83 | Lista pozycji 84 | Importuj z DB 85 | Wpisz słowo kluczowe pod którym twój projekt został zapisany: 86 | Wpisz słowo kluczowe pod którym twój projekt ma zostać zapisany: 87 | Wpisz nazwę bazy danych do zaimportowania: 88 | Odpowiedź serwera 89 | Zapisano 90 | Nie znaleziono 91 | Wewnętrzny błąd serwera 92 | Niezaimplementowane 93 | Serwer niedostępny 94 | 95 | 96 | Błąd XML 97 | Dokumentacja 98 | 99 | 100 | -------------------------------------------------------------------------------- /locale/pt_BR.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Adicionar tabela 5 | Editar tabela 6 | Remover tabela 7 | Remover tabelas 8 | Alinhar tabelas 9 | Limpar tabelas 10 | Realmente excluir todas as tabelas 11 | Nova tabela 12 | Clique p/ adicionar 13 | Nome 14 | Comentário 15 | 16 | 17 | Adicionar campo 18 | Editar campo 19 | Remover campo 20 | Para cima 21 | Para baixo 22 | Novo campo 23 | Criar chave estrangeira 24 | Selecione a tabela alvo(destino) 25 | Conectar chave estrangeira 26 | Clique na linha alvo 27 | Remover chave estrangeira 28 | Deseja realmente deletar a tabela 29 | Deseja realmente deletar o campo 30 | 31 | 32 | Nome 33 | Tipo 34 | Tamanho 35 | Default 36 | NOT NULL 37 | NULL 38 | Auto incrementar 39 | Editar comentário 40 | Digite o comentário para este campo 41 | 42 | 43 | OK 44 | Cancelar 45 | Por favor espere... 46 | Opções 47 | Linguagem 48 | Base de Dados para os novos designs 49 | Algumas opções serão aplicadas somente depois da página totalmente regarrecada. Cookies devem ser ativados para as opções funcionarem. 50 | Distância entre as tabelas 51 | Em pixels, 0 = desativar snapping 52 | Padrão p/ nomes estrangeiros 53 | %T = tabela primária, %R = chave primária, %t = tabela estrangeira 54 | Esconder connectores na tela? 55 | Desenhar conectores suaves (se suportado pelo navegador)? 56 | 57 | 58 | 59 | Chaves 60 | Chaves na tabela "%s" 61 | Tipo: 62 | Nome: 63 | Campos na chave 64 | Campos disponíveis 65 | Editar chave 66 | Adicionar chave 67 | Remover chave 68 | 69 | 70 | Salvar / Carregar 71 | Por favor cole os dados XML na área de texto abaixo e tente novamente. 72 | Cliente 73 | Servidor 74 | Entrada / Saída 75 | Salvar XML 76 | Carregar XML 77 | Gerar SQL 78 | Parâmetros do Servidor: 79 | Salvar 80 | Carregar 81 | Listar itens 82 | Importar do BD 83 | Digite o nome o qual seu design foi salvo: 84 | Digite o nome com qual seu design será salvo: 85 | Digite o nome da base de dados à ser importada: 86 | Resposta do servidor 87 | Salvo 88 | Não Encontrado 89 | Erro Interno do Servidor 90 | Não Implementado 91 | Serviço Indisponível 92 | 93 | 94 | Erro de XML 95 | Documentação 96 | 97 | 98 | -------------------------------------------------------------------------------- /locale/ro.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Adauga tabela 5 | Editeaza tabela 6 | Sterge tabela 7 | Sterge tabelele 8 | Aliniaza tabelele 9 | Sterge tabelele 10 | Sterge toate tabelele 11 | (nume tabela) 12 | plaseaza tabela 13 | Nume 14 | Comentariu 15 | 16 | 17 | Adauga coloana 18 | Editeaza coloana 19 | Sterge coloana 20 | Sus 21 | Jos 22 | coloana noua 23 | Creaza FK 24 | alege destinatie 25 | Conexiune FK 26 | alege destinatie 27 | Sterge FK 28 | Sterge tabela 29 | Sterge coloana 30 | 31 | 32 | Nume 33 | Tip 34 | Dimensiune 35 | Valoare default 36 | NOT NULL 37 | NULL 38 | Auto increment 39 | Editare comentariu 40 | Introduceti comentariul pentru aceasta coloana: 41 | 42 | 43 | OK 44 | Anuleaza 45 | Asteptati va rog... 46 | Optiuni 47 | Limbaj 48 | Baza de date pentru design 49 | Anumite optiuni devin active numai dupa o reincarcare completa a paginii. Cookies trebuie sa fie activate pentru browser. 50 | Distanta automata intre tabele 51 | In pixeli, 0 = dezactiveaza asezarea automata 52 | Modelul pentru nume de Foreign Keys 53 | %T = Tabela primara, %R = Primary key, %t = Tabela cu Foreign key 54 | Ascunde conexiunile la mutarea tabelei? 55 | Deseneaza folosind "smooth connectors" (daca browserul suporta)? 56 | 57 | 58 | 59 | Keys / Indexes 60 | Keys / Indexes in tabela "%s" 61 | Tip: 62 | Nume: 63 | Campuri selectate 64 | Campuri disponibile 65 | Editeaza 66 | Adauga 67 | Sterge 68 | 69 | 70 | Salveaza / Incarca 71 | Introduceti codul XML si re-incercati. 72 | Client 73 | Server 74 | Input / Output 75 | Genereaza XML 76 | Incarca din XML 77 | Genereaza SQL 78 | Server backend: 79 | Salveaza 80 | Incarca 81 | Lista de salvari 82 | Import tabele din baza de date 83 | Introduceti numele sub care a fost salvat design-ul: 84 | Introduceti numele sub care va fi salvat design-ul: 85 | Introduceti numele bazei de date care va fi importata: 86 | Server response 87 | Salvare efectuata 88 | Not Found 89 | Internal Server Error 90 | Not Implemented 91 | Service Unavailable 92 | 93 | 94 | Eroare XML 95 | Documentatie 96 | 97 | 98 | -------------------------------------------------------------------------------- /locale/ru.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Добавить таблицу 5 | Редактировать таблицу 6 | Удалить таблицу 7 | Удалить таблицы 8 | Выровнять таблицы 9 | Очистить таблицы 10 | Действительно удалить все таблицы 11 | новая таблица 12 | расположите таблицу 13 | Имя 14 | Коментарий 15 | 16 | 17 | Добавить поле 18 | Редактировать поле 19 | Удалить поле 20 | Вверх 21 | Вниз 22 | новое поле 23 | Создать внешний ключ 24 | щелкните по целевой таблице 25 | Присоединить внешний ключ 26 | щёлкните по целевой таблице 27 | Удалить внешний ключ 28 | Действительно удалить таблицу 29 | Действительно удалить поле 30 | 31 | 32 | Имя 33 | Тип 34 | Размер 35 | По умолчанию 36 | NOT NULL 37 | NULL 38 | Автоинкремент 39 | Изменить коментарий 40 | Введите коментарий для этого поля 41 | 42 | 43 | OK 44 | Отменить 45 | Пожалуйста подождите... 46 | Опции 47 | Язык 48 | База данных для новых схем 49 | Некоторые опции заработают только после полной перезагрузки страницы. Cookie должны быть включены. 50 | Шаг при перемещении таблицы 51 | В пикселях, 0 = отключить 52 | Шаблон для имён внешних ключей 53 | %T = первичная таблица, %R = первичный ключ, %t = внешняя таблица 54 | Прятать связи при перетаскивании таблиц? 55 | Рисовать сглаженные связи (если поддерживается браузером)? 56 | Показывать размеры полей таблиц? 57 | Показывать типы данных полей таблиц? 58 | 59 | 60 | Ключи 61 | Ключи в таблице "%s" 62 | Тип: 63 | Имя: 64 | Поля в ключе 65 | Доступные поля 66 | Редактировать ключ 67 | Добавить ключ 68 | Удалить ключ 69 | 70 | 71 | Сохранить / Загрузить 72 | Пожалуйста, вставьте XML данные в поле ниже и попробуйте ещё раз. 73 | Клиент 74 | Сервер 75 | Ввод / Вывод 76 | Сохранить XML 77 | Загрузить XML 78 | Сохранить в браузере 79 | Загрузить из браузера 80 | Получить список схем из браузера 81 | Сохранить в Dropbox 82 | Загрузить из Dropbox 83 | Получить список из Dropbox 84 | Генерировать SQL 85 | Серверные технологии: 86 | Сохранить 87 | Быстрое сохранение 88 | Загрузить 89 | Получить список схем 90 | Импортировать из БД 91 | Введите ключевое слово под которым сохранена ваша схема: 92 | Введите ключевое слово под которым будет сохранена ваша схема: 93 | Введите имя импортируемой базы данных: 94 | Ответ сервера 95 | Сохранено 96 | Не найдено 97 | Внутренняя ошибка сервера 98 | Не реализовано 99 | Служба недоступна 100 | 101 | 102 | Ошибка XML 103 | Документация 104 | 105 | 106 | -------------------------------------------------------------------------------- /locale/sv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Skapa tabell 5 | Redigera tabell 6 | Ta bort tabell 7 | Ta bort tabeller 8 | Räta upp tabeller 9 | Ta bort alla tabeller 10 | Vill du verkligen ta bort alla tabeller 11 | Ny tabell 12 | Placera tabell 13 | Namn 14 | Kommentar 15 | 16 | 17 | Lägg till fält 18 | Redigera fält 19 | Ta bort field 20 | Upp 21 | Ner 22 | Ny field 23 | Skapa främmande nyckel 24 | Klicka på motsvarande tabell 25 | Anslut främmande nycke 26 | Välj motsvarande rad 27 | Ta bort främmande nyckel 28 | Vill du verkligen ta bort denna tabell? 29 | Vill du verkligen ta bort detta fält? 30 | 31 | 32 | Namn 33 | Typ 34 | Storlek 35 | Standard 36 | NOT NULL 37 | NULL 38 | Autoincrement 39 | Redigera kommentar 40 | Ange kommentar för detta fält 41 | 42 | 43 | OK 44 | Avbryt 45 | Var god vänta... 46 | Alternativ 47 | Språk 48 | Databas for nya designer 49 | Vissa alternativ ändras bara efter att du laddat om sidan. Cookies krävs för att alternativ ska fungera. 50 | Tabellers fästavstånd 51 | Ange pixlar, 0 = stäng av fästning 52 | Mönster för främmande namn 53 | %T = primär tabell, %R = primär nycke, %t = främmande tabell 54 | Dölj anslutningar när du drar i tabellen? 55 | Rita mjuka anslutningar (om din webbläsare stöder det)? 56 | 57 | 58 | 59 | Nycklar 60 | Nycklar i tabellen "%s" 61 | Typ: 62 | Namn: 63 | Fields in nyckel 64 | Available fields 65 | Edit nyckel 66 | Add key 67 | Ta bort key 68 | 69 | 70 | Spara / Ladda 71 | Vänligen klistra in XML i textrutan nedan och försök igen. 72 | Klient 73 | Server 74 | Input / Output 75 | Spara XML 76 | Ladda XML 77 | Generera SQL 78 | Server backend: 79 | Spara 80 | Ladda 81 | Lista innehåll 82 | Importera från DB 83 | Ange vilket nyckelord din design sparades under: 84 | Ange vilket nyckelord din design ska sparas under: 85 | Ange namnet på databasen som ska importeras: 86 | Serversvar 87 | Sparad 88 | Ej funnen 89 | Intert serverfel 90 | Ej implementerat 91 | Service Unavailable 92 | 93 | 94 | XML error 95 | Dokumentation 96 | 97 | 98 | -------------------------------------------------------------------------------- /locale/zh.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 添加表 5 | 修改表 6 | 移除表 7 | 重组表格位置 8 | 删除所有表 9 | 真的要删除所有表么 10 | 表名称 11 | 放置表格…… 12 | 表名 13 | 注释 14 | 15 | 16 | 添加列 17 | 修改列 18 | 删除列 19 | 上移 20 | 下移 21 | newfield 22 | 创建外连表格列 23 | 点击选择目标表 24 | 连接到外部列 25 | 点击选择目标列 26 | 断开外部连接 27 | 真的删除表么 28 | 真的删除列么 29 | 30 | 31 | 列名 32 | 类型 33 | 大小 34 | 默认 35 | 不能为空 36 | 可留空 37 | 自增长 38 | 改备注 39 | 输入此列备注 40 | 41 | 42 | 搞定 43 | 不要了 44 | 请等待... 45 | 选项设置 46 | 语言 47 | 新建的数据库设为: 48 | 有些属性需要刷新页面后才能起作用,所以,浏览器的Cookies必须启用。 49 | 表格捕捉距离 50 | 像素, 0 = 关闭捕捉 51 | 外连名称规则 52 | %T = 主表, %R = 主键, %t = 外连表 53 | 在表格移动时不显示连接? 54 | 绘制平滑的连接 (如果浏览器支持)? 55 | 设计表格时显示字段大小? 56 | 设计表格时显示字段数据类型? 57 | 58 | 59 | 60 | 设置表键 61 | 在 "%s" 表中可用列属性 62 | 类型: 63 | 属性名称: 64 | 此属性中的列 65 | 可用列 66 | 修改属性 67 | 添加属性 68 | 删除属性 69 | 70 | 71 | 登录 72 | 注销 73 | 保存 / 载入 74 | 请先粘帖一个XML文件内容到文本框中,然后再导入。 75 | 客户端 76 | 服务端 77 | 输入 / 输出 78 | 保存为XML 79 | 载入XML 80 | 传化为数据库脚本 81 | 服务后台: 82 | 保存 83 | 载入 84 | 显示清单 85 | 快速保存 86 | 从数据库中导入 87 | 输入你所保存的名字: 88 | 输入所要保存的名字: 89 | 输入所要导入的数据库名称: 90 | 服务器反馈 91 | 已存 92 | 找不到 93 | 网络服务错误 94 | 未执行 95 | 服务暂不可用 96 | 97 | 98 | XML 错误 99 | 文档 100 | 101 | 102 | -------------------------------------------------------------------------------- /nbproject/project.properties: -------------------------------------------------------------------------------- 1 | file.reference.src-wwwsqldesigner-master=. 2 | files.encoding=UTF-8 3 | site.root.folder=${file.reference.src-wwwsqldesigner-master} 4 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.web.clientproject 4 | 5 | 6 | wwwsqldesigner-master 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /styles/print.css: -------------------------------------------------------------------------------- 1 | #bar, #background, #minimap { 2 | display: none; 3 | } 4 | 5 | .table { 6 | border:1px solid #000000; 7 | background-color:none; 8 | } 9 | 10 | .row { 11 | background-color:none; 12 | } 13 | 14 | .table .shadow-corner, .shadow-right, .shadow-bottom { 15 | display:none; 16 | } 17 | 18 | .table_title { 19 | font-weight:bold; 20 | font-size:115%; 21 | background-color:none; 22 | } 23 | 24 | --------------------------------------------------------------------------------