提交 6541cb14 authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 42715ee9
......@@ -74,6 +74,9 @@ public class LocalResult implements ResultInterface {
}
public LocalResult createShallowCopy(Session session) {
if(disk == null && rows == null || rows.size() < rowCount) {
return null;
}
LocalResult copy = new LocalResult(0);
copy.maxMemoryRows = this.maxMemoryRows;
copy.session = session;
......
......@@ -23,6 +23,7 @@ public class ResultRemote implements ResultInterface {
private Value[] currentRow;
private int rowId, rowCount;
private ObjectArray result;
private ObjectArray lobValues;
private boolean isUpdateCount;
private int updateCount;
......@@ -178,6 +179,17 @@ public class ResultRemote implements ResultInterface {
public void close() {
result = null;
sendClose();
if(lobValues != null) {
for(int i=0; i<lobValues.size(); i++) {
Value v = (Value) lobValues.get(i);
try {
v.close();
} catch(SQLException e) {
session.getTrace().error("delete lob " + v.getSQL(), e);
}
}
lobValues = null;
}
}
// public void finalize() {
......@@ -209,7 +221,14 @@ public class ResultRemote implements ResultInterface {
int len = columns.length;
Value[] values = new Value[len];
for (int i = 0; i < len; i++) {
values[i] = transfer.readValue();
Value v = transfer.readValue();
values[i] = v;
if(v.isFileBased()) {
if(lobValues == null) {
lobValues = new ObjectArray();
}
lobValues.add(v);
}
}
return values;
} else {
......
......@@ -71,9 +71,9 @@ public class AppThread extends WebServerThread {
file = query();
} else if(file.equals("tables.do")) {
file = tables();
} else if(file.equals("editresult.do")) {
} else if(file.equals("editResult.do")) {
file = editResult();
} else if(file.equals("gethistory.do")) {
} else if(file.equals("getHistory.do")) {
file = getHistory();
} else if(file.equals("admin.do")) {
file = admin();
......@@ -304,6 +304,7 @@ public class AppThread extends WebServerThread {
info.columns += ", " + rs.getString("COLUMN_NAME");
}
}
rs.close();
if(indexMap.size() > 0) {
buff.append("setNode("+treeIndex+", 1, 1, 'index_az', '${text.tree.indexes}', null);\n");
treeIndex++;
......@@ -328,8 +329,8 @@ public class AppThread extends WebServerThread {
Connection conn = getAppSession().getConnection();
DatabaseMetaData meta = app.getMetaData();
int level = mainSchema ? 0 : 1;
String ident = ", "+level+", "+(level+1)+", ";
String identNode = ", "+(level+1)+", "+(level+1)+", ";
String indentation = ", "+level+", "+(level+1)+", ";
String indentNode = ", "+(level+1)+", "+(level+1)+", ";
DbTableOrView[] tables = schema.tables;
if(tables == null) {
return treeIndex;
......@@ -347,7 +348,7 @@ public class AppThread extends WebServerThread {
tab =schema.quotedName + "." + tab;
}
tab = StringUtils.urlEncode(PageParser.escapeJavaScript(tab));
buff.append("setNode("+treeIndex+ident+" 'table', '" + PageParser.escapeJavaScript(table.name)+ "', 'javascript:ins(\\'"+tab+"\\',true)');\n");
buff.append("setNode("+treeIndex+indentation+" 'table', '" + PageParser.escapeJavaScript(table.name)+ "', 'javascript:ins(\\'"+tab+"\\',true)');\n");
treeIndex++;
if(mainSchema) {
StringBuffer columnsBuffer = new StringBuffer();
......@@ -370,7 +371,7 @@ public class AppThread extends WebServerThread {
tab = view.schema.quotedName + "." + tab;
}
tab = StringUtils.urlEncode(PageParser.escapeJavaScript(tab));
buff.append("setNode("+treeIndex+ident+" 'view', '" + PageParser.escapeJavaScript(view.name)+ "', 'javascript:ins(\\'"+tab+"\\',true)');\n");
buff.append("setNode("+treeIndex+indentation+" 'view', '" + PageParser.escapeJavaScript(view.name)+ "', 'javascript:ins(\\'"+tab+"\\',true)');\n");
treeIndex++;
if(mainSchema) {
StringBuffer columnsBuffer = new StringBuffer();
......@@ -383,9 +384,10 @@ public class AppThread extends WebServerThread {
ResultSet rs = prep.executeQuery();
if(rs.next()) {
String sql = rs.getString("SQL");
buff.append("setNode("+treeIndex+ identNode + " 'type', '" + PageParser.escapeJavaScript(sql)+ "', null);\n");
buff.append("setNode("+treeIndex+ indentNode + " 'type', '" + PageParser.escapeJavaScript(sql)+ "', null);\n");
treeIndex++;
}
rs.close();
} finally {
JdbcUtils.closeSilently(prep);
}
......@@ -448,6 +450,7 @@ public class AppThread extends WebServerThread {
treeIndex++;
}
}
rs.close();
rs = conn.createStatement().executeQuery("SELECT * FROM INFORMATION_SCHEMA.USERS ORDER BY NAME");
for(int i=0; rs.next(); i++) {
if(i==0) {
......@@ -463,6 +466,7 @@ public class AppThread extends WebServerThread {
treeIndex++;
}
}
rs.close();
} finally {
JdbcUtils.closeSilently(stat);
}
......@@ -537,8 +541,8 @@ public class AppThread extends WebServerThread {
appSession.setConnection(conn);
session.put("url", url);
session.put("user", user);
session.put("autocommit", "checked");
session.put("autocomplete", "1");
session.put("autoCommit", "checked");
session.put("autoComplete", "1");
session.put("maxrows", "1000");
session.remove("error");
settingSave();
......@@ -573,10 +577,10 @@ public class AppThread extends WebServerThread {
String result;
if(sql.equals("@AUTOCOMMIT TRUE")) {
conn.setAutoCommit(true);
result = "${text.result.autocommitOn}";
result = "${text.result.autoCommitOn}";
} else if(sql.equals("@AUTOCOMMIT FALSE")) {
conn.setAutoCommit(false);
result = "${text.result.autocommitOff}";
result = "${text.result.autoCommitOff}";
} else if(sql.startsWith("@TRANSACTION_ISOLATION")) {
String s = sql.substring("@TRANSACTION_ISOLATION".length()).trim();
if(s.length()>0) {
......@@ -653,7 +657,7 @@ public class AppThread extends WebServerThread {
result = "<br>"+getStackTrace(0, e);
error = formatAsError(e.getMessage());
}
String sql = "@EDIT " + (String) session.get("resultsetSQL");
String sql = "@EDIT " + (String) session.get("resultSetSQL");
Connection conn = getAppSession().getConnection();
result = error + getResult(conn, -1, sql, true) + result;
session.put("result", result);
......@@ -924,7 +928,7 @@ public class AppThread extends WebServerThread {
} else if(sql.startsWith("@EDIT")) {
edit = true;
sql = sql.substring("@EDIT".length()).trim();
session.put("resultsetSQL", sql);
session.put("resultSetSQL", sql);
} else if(sql.equals("@HISTORY")) {
buff.append(getHistoryString());
return buff.toString();
......@@ -942,7 +946,10 @@ public class AppThread extends WebServerThread {
boolean isResultSet = stat.execute(sql);
getAppSession().addCommand(sql);
if(generatedKeys) {
rs = null;
//#ifdef JDK14
rs = stat.getGeneratedKeys();
//#endif
} else {
if(!isResultSet) {
buff.append("${text.result.updateCount}: "+stat.getUpdateCount());
......@@ -1010,6 +1017,7 @@ public class AppThread extends WebServerThread {
rows++;
// maybe get the data as well
}
rs.close();
// maybe close result set
}
}
......@@ -1035,6 +1043,7 @@ public class AppThread extends WebServerThread {
rows++;
// maybe get the data as well
}
rs.close();
}
}
}
......@@ -1067,7 +1076,7 @@ public class AppThread extends WebServerThread {
for(int i=history.size()-1; i>=0; i--) {
String sql = (String) history.get(i);
buff.append("<tr><td>");
buff.append("<a href=\"gethistory.do?id=");
buff.append("<a href=\"getHistory.do?id=");
buff.append(i);
buff.append("&jsessionid=${sessionId}\" target=\"h2query\" ><img width=16 height=16 src=\"ico_write.gif\" onmouseover = \"this.className ='icon_hover'\" onmouseout = \"this.className ='icon'\" class=\"icon\" alt=\"${text.resultEdit.edit}\" title=\"${text.resultEdit.edit}\" border=\"1\"></a>");
buff.append("</td><td>");
......@@ -1085,7 +1094,7 @@ public class AppThread extends WebServerThread {
StringBuffer buff = new StringBuffer();
if(edit) {
buff.append("<form id=\"editing\" name=\"editing\" method=\"post\" "
+ "action=\"/editresult.do?jsessionid=${sessionId}\" id=\"mainForm\" target=\"h2result\">");
+ "action=\"/editResult.do?jsessionid=${sessionId}\" id=\"mainForm\" target=\"h2result\">");
buff.append("<input type=\"hidden\" name=\"op\" value=\"1\">");
buff.append("<input type=\"hidden\" name=\"row\" value=\"\">");
buff.append("<table cellspacing=0 cellpadding=0 id=\"editTable\">");
......@@ -1099,7 +1108,7 @@ public class AppThread extends WebServerThread {
buff.append("<tr><th>i</th><th>label</th><th>cat</th><th>schem</th>");
buff.append("<th>tab</th><th>col</th><th>type</th><th>typeName</th><th>class</th>");
buff.append("<th>prec</th><th>scale</th><th>size</th><th>autoInc</th>");
buff.append("<th>case</th><th>curr</th><th>null</th><th>ro</th>");
buff.append("<th>case</th><th>currency</th><th>null</th><th>ro</th>");
buff.append("<th>search</th><th>sig</th><th>w</th><th>defW</th></tr>");
for(int i=1; i<=columns; i++) {
buff.append("<tr>");
......@@ -1149,7 +1158,7 @@ public class AppThread extends WebServerThread {
buff.append(rs.getRow());
buff.append(",'${sessionId}', '${text.resultEdit.save}', '${text.resultEdit.cancel}'");
buff.append(")\" width=16 height=16 src=\"ico_write.gif\" onmouseover = \"this.className ='icon_hover'\" onmouseout = \"this.className ='icon'\" class=\"icon\" alt=\"${text.resultEdit.edit}\" title=\"${text.resultEdit.edit}\" border=\"1\">");
buff.append("<a href=\"editresult.do?op=2&row=");
buff.append("<a href=\"editResult.do?op=2&row=");
buff.append(rs.getRow());
buff.append("&jsessionid=${sessionId}\" target=\"h2result\" ><img width=16 height=16 src=\"ico_remove.gif\" onmouseover = \"this.className ='icon_hover'\" onmouseout = \"this.className ='icon'\" class=\"icon\" alt=\"${text.resultEdit.delete}\" title=\"${text.resultEdit.delete}\" border=\"1\"></a>");
buff.append("</td>");
......
......@@ -37,9 +37,11 @@ public class WebServer implements Service {
{ "es", "Espa\u00f1ol" },
{ "zh_CN", "\u4E2D\u6587"},
{ "ja", "\u65e5\u672c\u8a9e"},
{ "hu", "Magyar"},
{ "in", "Indonesia"}
};
// String lang =
// String lang = new java.util.Locale("hu").getDisplayLanguage(new java.util.Locale("hu"));
// java.util.Locale.CHINESE.getDisplayLanguage(
// java.util.Locale.CHINESE);
// for(int i=0; i<lang.length(); i++)
......@@ -181,7 +183,7 @@ public class WebServer implements Service {
}
void trace(String s) {
// System.out.println(s);
// System.out.println(s);
}
public boolean supportsLanguage(String language) {
......
......@@ -63,8 +63,8 @@ login.testConnection=Verbindung testen
login.testSuccessful=Test erfolgreich
login.welcome=H2 Console
result.1row=1 Datensatz
result.autocommitOff=Auto-Commit ist jetzt ausgeschaltet
result.autocommitOn=Auto-Commit ist jetzt eingeschaltet
result.autoCommitOff=Auto-Commit ist jetzt ausgeschaltet
result.autoCommitOn=Auto-Commit ist jetzt eingeschaltet
result.maxrowsSet=Maximale Anzahl Zeilen ist jetzt gesetzt
result.noRows=keine Datens&auml;tze
result.noRunningStatement=Im Moment wird kein Befehl ausgef&uuml;hrt
......@@ -78,11 +78,11 @@ resultEdit.edit=Bearbeiten
resultEdit.editResult=Bearbeiten
resultEdit.save=Speichern
toolbar.all=Alle
toolbar.autocommit=Auto-Commit
toolbar.autocomplete=Auto-Complete
toolbar.autocomplete.off=Aus
toolbar.autocomplete.normal=Normal
toolbar.autocomplete.full=Alles
toolbar.autoCommit=Auto-Commit
toolbar.autoComplete=Auto-Complete
toolbar.autoComplete.off=Aus
toolbar.autoComplete.normal=Normal
toolbar.autoComplete.full=Alles
toolbar.cancelStatement=Laufenden Befehl abbrechen
toolbar.clear=Leeren
toolbar.commit=Commit (Abschliessen/Speichern)
......
......@@ -63,14 +63,14 @@ login.testConnection=Test Connection
login.testSuccessful=Test successful
login.welcome=H2 Console
result.1row=1 row
result.autocommitOff=Autocommit is now OFF
result.autocommitOn=Autocommit is now ON
result.autoCommitOff=Auto commit is now OFF
result.autoCommitOn=Auto commit is now ON
result.maxrowsSet=Max rowcount is set
result.noRows=no rows
result.noRunningStatement=There is currently no running statement
result.rows=rows
result.statementWasCancelled=The statement was cancelled
result.updateCount=Update Count
result.updateCount=Update count
resultEdit.add=Add
resultEdit.cancel=Cancel
resultEdit.delete=Delete
......@@ -78,17 +78,17 @@ resultEdit.edit=Edit
resultEdit.editResult=Edit
resultEdit.save=Save
toolbar.all=All
toolbar.autocommit=Autocommit
toolbar.autocomplete=Auto-Complete
toolbar.autocomplete.off=Off
toolbar.autocomplete.normal=Normal
toolbar.autocomplete.full=Full
toolbar.autoCommit=Auto commit
toolbar.autoComplete=Auto complete
toolbar.autoComplete.off=Off
toolbar.autoComplete.normal=Normal
toolbar.autoComplete.full=Full
toolbar.cancelStatement=Cancel the current statement
toolbar.clear=Clear
toolbar.commit=Commit
toolbar.disconnect=Disconnect
toolbar.history=Command History
toolbar.maxRows=Max Rows
toolbar.history=Command history
toolbar.maxRows=Max rows
toolbar.refresh=Refresh
toolbar.rollback=Rollback
toolbar.run=Run (Ctrl+Enter)
......@@ -98,7 +98,7 @@ tree.current=Current value
tree.hashed=Hashed
tree.increment=Increment
tree.indexes=Indexes
tree.nonUnique=Non-Unique
tree.nonUnique=Non unique
tree.sequences=Sequences
tree.unique=Unique
tree.users=Users
# Use the PropertiesToUTF8 tool to translate the files to UTF-8 and back
# translator: Miguel Angel
# Translator: Miguel Angel
a.help=Ayuda
a.language=Espa&ntilde;ol
a.lynxNotSupported=Lo sentimos, Lynx no est&aacute; soportado todav&iacute;a
......@@ -64,8 +64,8 @@ login.testConnection=Probar la conexi&oacute;n
login.testSuccessful=Prueba correcta
login.welcome=H2 Consola
result.1row=1 fila
result.autocommitOff=El autocommit no est&aacute; activo
result.autocommitOn=El autocommit est&aacute; activo
result.autoCommitOff=El auto commit no est&aacute; activo
result.autoCommitOn=El auto commit est&aacute; activo
result.maxrowsSet=N&uacute;mero m&aacute;ximo de filas modificado
result.noRows=No se han recuperado filas
result.noRunningStatement=No hay una instrucci&oacute;n ejecut&aacute;ndose
......@@ -79,11 +79,11 @@ resultEdit.edit=Editar
resultEdit.editResult=Editar
resultEdit.save=Guardar
toolbar.all=Todos
toolbar.autocommit=Autocommit
toolbar.autocomplete=Auto-Completado
toolbar.autocomplete.off=Desactivado
toolbar.autocomplete.normal=Normal
toolbar.autocomplete.full=Completo
toolbar.autoCommit=Auto commit
toolbar.autoComplete=Auto completado
toolbar.autoComplete.off=Desactivado
toolbar.autoComplete.normal=Normal
toolbar.autoComplete.full=Completo
toolbar.cancelStatement=Cancelar la instrucci&oacute;n actual
toolbar.clear=Eliminar
toolbar.commit=Commit
......
......@@ -63,8 +63,8 @@ login.testConnection=Test de connexion
login.testSuccessful=Succ&egrave;s
login.welcome=Console H2
result.1row=1 enregistrement
result.autocommitOff=Validation automatique non activ&eacute;e
result.autocommitOn=Validation automatique activ&eacute;e
result.autoCommitOff=Validation automatique non activ&eacute;e
result.autoCommitOn=Validation automatique activ&eacute;e
result.maxrowsSet=Nombre max d'enregistrements d&eacute;fini
result.noRows=Aucun enregistrement
result.noRunningStatement=Pas d'instruction en cours
......@@ -78,11 +78,11 @@ resultEdit.edit=Editer
resultEdit.editResult=Editer
resultEdit.save=Enregistrer
toolbar.all=Tous
toolbar.autocommit=Validation automatique (autocommit)
toolbar.autocomplete=#Auto-Complete
toolbar.autocomplete.off=#Off
toolbar.autocomplete.normal=#Normal
toolbar.autocomplete.full=#Full
toolbar.autoCommit=Validation automatique (auto commit)
toolbar.autoComplete=#Auto-Complete
toolbar.autoComplete.off=#Off
toolbar.autoComplete.normal=#Normal
toolbar.autoComplete.full=#Full
toolbar.cancelStatement=Annuler l'instruction en cours
toolbar.clear=Effacer
toolbar.commit=Valider
......
# Use the PropertiesToUTF8 tool to translate the files to UTF-8 and back
# Hungarian spec chars: &eacute;&#369;&aacute;&#337;&uacute;&ouml;&uuml;&oacute;&iacute;&Eacute;&Aacute;&#368;&#336;&Uacute;&Ouml;&Uuml;&Oacute;&Iacute;
# Translator: Andras Hideg
a.help=S&uacute;g&oacute;
a.language=Magyar
a.lynxNotSupported=A Lynx b&ouml;ng&eacute;sz&#337; egyel&#337;re nem t&aacute;mogatott
a.password=Jelsz&oacute;
a.remoteConnectionsDisabled=Ezen a kiszolg&aacute;l&oacute;n t&aacute;voli kapcsolatok ('webAllowOthers') nem enged&eacute;lyezettek.
a.title=H2 konzol
a.user=Felhaszn&aacute;l&oacute;n&eacute;v
admin.executing=Utas&iacute;t&aacute;s v&eacute;grehajt&aacute;sa
admin.ip=IP
admin.lastAccess=Legut&oacute;bbi hozz&aacute;f&eacute;r&eacute;s
admin.lastQuery=Legut&oacute;bbi lek&eacute;rdez&eacute;s
admin.url=URL
adminAllow=Enged&eacute;lyezett &uuml;gyfelek
adminConnection=Kapcsolatbiztons&aacute;g
adminHttp=Titkos&iacute;tatlan HTTP kapcsolatok haszn&aacute;lata
adminHttps=Titkos&iacute;tott SSL (HTTPS) kapcsolatok haszn&aacute;lata
adminLocal=Csak helyi kapcsolatok enged&eacute;lyez&eacute;se
adminLogin=Adminisztr&aacute;ci&oacute;s bejelentkez&eacute;s
adminLoginCancel=M&eacute;gse
adminLoginOk=OK
adminLogout=Kil&eacute;p&eacute;s
adminOthers=M&aacute;s sz&aacute;m&iacute;t&oacute;g&eacute;pekr&#337;l kezdem&eacute;nyezett kapcsolatok enged&eacute;lyez&eacute;se
adminPort=Webkiszolg&aacute;l&oacute; portsz&aacute;ma
adminRestart=A v&aacute;ltoztat&aacute;sok a kiszolg&aacute;l&oacute; &uacute;jraind&iacute;t&aacute;sa ut&aacute;n l&eacute;pnek &eacute;rv&eacute;nybe
adminSave=Ment&eacute;s
adminSessions=Akt&iacute;v munkamenetek
adminShutdown=Le&aacute;ll&iacute;t&aacute;s
adminTitle=H2 Konzol tulajdons&aacute;gai
helpAction=Parancs
helpAddAnotherRow=Rekord hozz&aacute;ad&aacute;sa
helpAddDrivers=Adatb&aacute;zis-illeszt&#337;programok hozz&aacute;ad&aacute;sa
helpAddDriversOnlyJava=Illeszt&#337;programok hozz&aacute;ad&aacute;s&aacute;t csak a Java verzi&oacute; t&aacute;mogatja, a nat&iacute;v verzi&oacute; nem.
helpAddDriversText=Tov&aacute;bbi adatb&aacute;zis-illeszt&#337;programok regisztr&aacute;l&aacute;sakor a H2DRIVERS vagy CLASSPATH k&ouml;rnyezeti v&aacute;ltoz&oacute;khoz kell adni a .jar illeszt&#337;program-f&aacute;jlok el&eacute;r&eacute;si &uacute;tvonalait. P&eacute;ld&aacute;ul (Windows eset&eacute;n) a C:\\Programs\\hsqldb\\lib\\hsqldb.jar illeszt&#337;program regisztr&aacute;l&aacute;s&aacute;hoz a H2DRIVERS k&ouml;rnyezeti v&aacute;ltoz&oacute;nak az al&aacute;bbi &eacute;rt&eacute;k&eacute;t kell megadni: C:\\Programs\\hsqldb\\lib\\hsqldb.jar
helpAddRow=Rekord hozz&aacute;ad&aacute;sa
helpCommandHistory=Kor&aacute;bbi utas&iacute;t&aacute;sok megjelen&iacute;t&eacute;se
helpCreateTable=&Uacute;j t&aacute;bla l&eacute;trehoz&aacute;sa
helpDeleteRow=rekord t&ouml;rl&eacute;se
helpDisconnect=Kapcsolat megszak&iacute;t&aacute;sa az adatb&aacute;zissal
helpDisplayThis=S&uacute;g&oacute; megjelen&iacute;t&eacute;se
helpDropTable=T&aacute;bla t&ouml;rl&eacute;se, ha az l&eacute;tezik
helpExecuteCurrent=Aktu&aacute;lis SQL utas&iacute;t&aacute;s v&eacute;grehajt&aacute;sa
helpIcon=Ikon
helpImportantCommands=Fontos utas&iacute;t&aacute;sok
helpOperations=M&#369;veletek
helpQuery=T&aacute;bla lek&eacute;rdez&eacute;se
helpSampleSQL=Minta SQL szkript
helpStatements=SQL utas&iacute;t&aacute;sok
helpUpdate=Adatok m&oacute;dos&iacute;t&aacute;sa egy rekordon bel&uuml;l
helpWithColumnsIdName=ID &eacute;s NAME oszlopokkal
login.connect=Csatlakoz&aacute;s
login.driverClass=Illeszt&#337;program oszt&aacute;ly
login.driverNotFound=Adatb&aacute;zis-illeszt&#337;program nem tal&aacute;lhat&oacute;&lt;br&gt;Illeszt&#337;programok hozz&aacute;ad&aacute;s&aacute;r&oacute;l a S&uacute;g&oacute; ad felvil&aacute;gos&iacute;t&aacute;st.
login.goAdmin=Tulajdons&aacute;gok
login.jdbcUrl=JDBC URL
login.language=Nyelv
login.login=Bel&eacute;p&eacute;s
login.remove=Elt&aacute;vol&iacute;t&aacute;s
login.save=Ment&eacute;s
login.savedSetting=Mentett be&aacute;ll&iacute;t&aacute;sok
login.settingName=Be&aacute;ll&iacute;t&aacute;s neve
login.testConnection=Kapcsolat tesztel&eacute;se
login.testSuccessful=Kapcsolat tesztel&eacute;se sikeres volt
login.welcome=H2 konzol
result.1row=1 rekord
result.autoCommitOff=Automatikus j&oacute;v&aacute;hagy&aacute;s kikapcsolva
result.autoCommitOn=Automatikus j&oacute;v&aacute;hagy&aacute;s bekapcsolva
result.maxrowsSet=Rekordok maxim&aacute;lis sz&aacute;ma be&aacute;ll&iacute;tva
result.noRows=nincs rekord
result.noRunningStatement=Utas&iacute;t&aacute;s jelenleg nincs folyamatban
result.rows=rekordok
result.statementWasCancelled=Az utas&iacute;t&aacute;s v&eacute;grehajt&aacute;sa megszakadt
result.updateCount=Friss&iacute;t&eacute;s
resultEdit.add=Hozz&aacute;ad&aacute;s
resultEdit.cancel=M&eacute;gse
resultEdit.delete=T&ouml;rl&eacute;s
resultEdit.edit=Szerkeszt&eacute;s
resultEdit.editResult=Szerkeszt&eacute;s
resultEdit.save=Ment&eacute;s
toolbar.all=Mind
toolbar.autoCommit=Automatikus j&oacute;v&aacute;hagy&aacute;s
toolbar.autoComplete=Automatikus kieg&eacute;sz&iacute;t&eacute;s
toolbar.autoComplete.off=Kikapcsolva
toolbar.autoComplete.normal=Norm&aacute;l
toolbar.autoComplete.full=Teljes
toolbar.cancelStatement=Aktu&aacute;lis utas&iacute;t&aacute;s v&eacute;grehajt&aacute;s&aacute;nak megszak&iacute;t&aacute;sa
toolbar.clear=T&ouml;rl&eacute;s
toolbar.commit=J&oacute;v&aacute;hagy&aacute;s
toolbar.disconnect=Kapcsolat bont&aacute;sa
toolbar.history=Kor&aacute;bbi utas&iacute;t&aacute;sok
toolbar.maxRows=Rekordok maxim&aacute;lis sz&aacute;ma
toolbar.refresh=Friss&iacute;t&eacute;s
toolbar.rollback=Visszag&ouml;rget&eacute;s
toolbar.run=V&eacute;grehajt&aacute;s (Ctrl+Enter)
toolbar.sqlStatement=SQL utas&iacute;t&aacute;s
tree.admin=Adminisztr&aacute;tor
tree.current=Aktu&aacute;lis &eacute;rt&eacute;k
tree.hashed=Hash-&eacute;rt&eacute;kkel ell&aacute;tott
tree.increment=Inkrement&aacute;lt
tree.indexes=Indexek
tree.nonUnique=Nem egyedi
tree.sequences=Szekvencia
tree.unique=Egyedi
tree.users=Felhaszn&aacute;l&oacute;k
# Use the PropertiesToUTF8 tool to translate the files to UTF-8 and back
# Translator: Joko Yuliantoro
a.help=Bantuan
a.language=Indonesia
a.lynxNotSupported=Maaf, Lynx belum didukung. Gunakan browser yang mendukung Javascript (dan Frame).
a.password=Kata kunci
a.remoteConnectionsDisabled=Maaf, fungsi koneksi jarak jauh ('webAllowOthers') dimatikan pada server ini.
a.title=Konsol H2
a.user=Nama pengguna
admin.executing=Sedang eksekusi
admin.ip=IP
admin.lastAccess=Akses Terakhir
admin.lastQuery=Kueri Terakhir
admin.url=URL
adminAllow=Klien terijin
adminConnection=Keamanan koneksi
adminHttp=Gunakan koneksi HTTP tidak terenkripsi
adminHttps=Gunakan koneksi SSL terenkripsi (HTTPS)
adminLocal=Hanya ijinkan koneksi lokal
adminLogin=Login Pengelola
adminLoginCancel=Batal
adminLoginOk=OK
adminLogout=Keluar
adminOthers=Ijinkan koneksi dari komputer lain
adminPort=Nomor port web server
adminRestart=Perubahan akan efektif setelah server di-restart.
adminSave=Simpan
adminSessions=Sesi aktif
adminShutdown=Matikan
adminTitle=Pilihan di Konsol H2
helpAction=Aksi
helpAddAnotherRow=Menambah sebuah baris
helpAddDrivers=Menambah pengendali basis data
helpAddDriversOnlyJava=Hanya versi Java saja yang mendukung pengendali tambahan (fitur ini tidak didukung oleh versi Native).
helpAddDriversText=Pengendali basis data tambahan dapat didaftarkan dengan cara menambah lokasi file Jar dari si pengendali ke variabel lingkungan H2DRIVERS atau CLASSPATH. Contoh (Windows): Untuk menambah librari pengendali basis data C:\\Programs\\hsqldb\\lib\\hsqldb.jar, atur variabel lingkungan H2DRIVERS menjadi C:\\Programs\\hsqldb\\lib\\hsqldb.jar.
helpAddRow=Tambah sebuah baris baru
helpCommandHistory=Tampilkan sejarah perintah
helpCreateTable=Ciptakan sebuah tabel
helpDeleteRow=Buang sebuah baris
helpDisconnect=Putuskan koneksi dari basis data
helpDisplayThis=Tampilkan laman bantuan ini
helpDropTable=Hapus tabel jika sudah ada
helpExecuteCurrent=Jalankan pernyataan SQL terkini
helpIcon=Ikon
helpImportantCommands=Perintah penting
helpOperations=Operasi
helpQuery=Kueri ke tabel
helpSampleSQL=Contoh skrip SQL
helpStatements=Pernyataan SQL
helpUpdate=Rubah data dalam sebuah baris
helpWithColumnsIdName=dengan kolom ID dan NAME
login.connect=Hubungkan
login.driverClass=Kelas Pengendali
login.driverNotFound=Pengendali basis data tidak ditemukan<br>Pelajari bagian Bantuan untuk mengetahui bagaimana cara menambah pengendali basis data
login.goAdmin=Pilihan
login.jdbcUrl=JDBC URL
login.language=Bahasa
login.login=Login
login.remove=Buang
login.save=Simpan
login.savedSetting=Pengaturan tersimpan
login.settingName=Nama pengaturan
login.testConnection=Tes koneksi
login.testSuccessful=Tes berhasil
login.welcome=Konsol H2
result.1row=1 baris
result.autoCommitOff=Autocommit sekarang OFF
result.autoCommitOn=Autocommit sekarang ON
result.maxrowsSet=Hitungan baris maksimum terpasang
result.noRows=Tidak ada hasil
result.noRunningStatement=Saat ini tidak ada pernyataan yang beroperasi
result.rows=baris
result.statementWasCancelled=Pernyataan tersebut dibatalkan
result.updateCount=Perbarui Hitungan
resultEdit.add=Tambah
resultEdit.cancel=Batal
resultEdit.delete=Hapus
resultEdit.edit=Ubah
resultEdit.editResult=Ubah
resultEdit.save=Simpan
toolbar.all=Semua
toolbar.autoCommit=Autocommit
toolbar.autoComplete=Auto-Complete
toolbar.autoComplete.off=Off
toolbar.autoComplete.normal=Normal
toolbar.autoComplete.full=Full
toolbar.cancelStatement=Batalkan pernyataan terkini
toolbar.clear=Bersihkan
toolbar.commit=Laksanakan
toolbar.disconnect=Putuskan koneksi
toolbar.history=Sejarah perintah
toolbar.maxRows=Baris maksimum
toolbar.refresh=Segarkan
toolbar.rollback=Gulung mundur
toolbar.run=Jalankan (Ctrl+Enter)
toolbar.sqlStatement=Pernyataan SQL
tree.admin=Admin
tree.current=Nilai terkini
tree.hashed=Hashed
tree.increment=Penambahan
tree.indexes=Indeks
tree.nonUnique=Tidak-Unik
tree.sequences=Urut-urutan
tree.unique=Unik
tree.users=Para pengguna
......@@ -64,8 +64,8 @@ login.testConnection=\u63a5\u7d9a\u30c6\u30b9\u30c8
login.testSuccessful=\u30c6\u30b9\u30c8\u306f\u6210\u529f\u3057\u307e\u3057\u305f
login.welcome=H2\u30b3\u30f3\u30bd\u30fc\u30eb
result.1row=1 \u884c
result.autocommitOff=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8\u304c\u7121\u52b9\u306b\u306a\u308a\u307e\u3057\u305f
result.autocommitOn=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8\u304c\u6709\u52b9\u306b\u306a\u308a\u307e\u3057\u305f
result.autoCommitOff=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8\u304c\u7121\u52b9\u306b\u306a\u308a\u307e\u3057\u305f
result.autoCommitOn=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8\u304c\u6709\u52b9\u306b\u306a\u308a\u307e\u3057\u305f
result.maxrowsSet=\u6700\u5927\u884c\u6570\u304c\u8a2d\u5b9a\u3055\u308c\u307e\u3057\u305f
result.noRows=\u8a72\u5f53\u884c\u7121\u3057
result.noRunningStatement=\u73fe\u5728\u5b9f\u884c\u4e2d\u306e\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306f\u3042\u308a\u307e\u305b\u3093
......@@ -79,11 +79,11 @@ resultEdit.edit=\u7de8\u96c6
resultEdit.editResult=\u7de8\u96c6
resultEdit.save=\u4fdd\u5b58
toolbar.all=\u5168\u3066
toolbar.autocommit=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8
toolbar.autocomplete=\u30aa\u30fc\u30c8\u30b3\u30f3\u30d7\u30ea\u30fc\u30c8
toolbar.autocomplete.off=\u30aa\u30d5
toolbar.autocomplete.normal=\u30ce\u30fc\u30de\u30eb
toolbar.autocomplete.full=\u30d5\u30eb
toolbar.autoCommit=\u30aa\u30fc\u30c8\u30b3\u30df\u30c3\u30c8
toolbar.autoComplete=\u30aa\u30fc\u30c8\u30b3\u30f3\u30d7\u30ea\u30fc\u30c8
toolbar.autoComplete.off=\u30aa\u30d5
toolbar.autoComplete.normal=\u30ce\u30fc\u30de\u30eb
toolbar.autoComplete.full=\u30d5\u30eb
toolbar.cancelStatement=\u73fe\u5728\u306e\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u30ad\u30e3\u30f3\u30bb\u30eb
toolbar.clear=\u30af\u30ea\u30a2
toolbar.commit=\u30b3\u30df\u30c3\u30c8
......
# Use the PropertiesToUTF8 tool to translate the files to UTF-8 and back
#Created by JInto - www.guh-software.de
#Mon Apr 10 14:14:45 CST 2006
#Author: junheng.song
#Email sjh21 (at) hot mail (dot) com
# Created by JInto - www.guh-software.de
# Mon Apr 10 14:14:45 CST 2006
# Author: junheng.song (sjh21 (at) hot mail (dot) com)
a.help=\u5E2E\u52A9
a.language=\u4E2D\u6587
a.lynxNotSupported=\u62B1\u6B49, \u76EE\u524D\u8FD8\u4E0D\u652F\u6301Lynx
......@@ -67,8 +66,8 @@ login.testConnection=\u6D4B\u8BD5\u8FDE\u63A5
login.testSuccessful=\u6D4B\u8BD5\u6210\u529F
login.welcome=H2 \u63A7\u5236\u53F0
result.1row=1 \u884C
result.autocommitOff=\u81EA\u52A8\u63D0\u4EA4\u73B0\u5728\u4E3A\u5173\u95ED
result.autocommitOn=\u81EA\u52A8\u63D0\u4EA4\u73B0\u5728\u4E3A\u6253\u5F00
result.autoCommitOff=\u81EA\u52A8\u63D0\u4EA4\u73B0\u5728\u4E3A\u5173\u95ED
result.autoCommitOn=\u81EA\u52A8\u63D0\u4EA4\u73B0\u5728\u4E3A\u6253\u5F00
result.maxrowsSet=\u6700\u5927\u8FD4\u56DE\u884C\u6570\u88AB\u8BBE\u7F6E
result.noRows=\u65E0\u8FD4\u56DE\u884C
result.noRunningStatement=\u5F53\u524D\u6CA1\u6709\u6B63\u5728\u6267\u884C\u7684SQL\u8BED\u53E5
......@@ -82,11 +81,11 @@ resultEdit.edit=\u7F16\u8F91
resultEdit.editResult=\u7F16\u8F91\u7ED3\u679C\u96C6
resultEdit.save=\u4FDD\u5B58
toolbar.all=\u5168\u90E8
toolbar.autocommit=\u81EA\u52A8\u63D0\u4EA4
toolbar.autocomplete=#Auto-Complete
toolbar.autocomplete.off=#Off
toolbar.autocomplete.normal=#Normal
toolbar.autocomplete.full=#Full
toolbar.autoCommit=\u81EA\u52A8\u63D0\u4EA4
toolbar.autoComplete=#Auto-Complete
toolbar.autoComplete.off=#Off
toolbar.autoComplete.normal=#Normal
toolbar.autoComplete.full=#Full
toolbar.cancelStatement=\u53D6\u6D88\u5F53\u524D\u7684\u6267\u884C\u8BED\u53E5
toolbar.clear=\u6E05\u9664
toolbar.commit=\u63D0\u4EA4
......
......@@ -24,13 +24,13 @@ Initial Developer: H2 Group
onmouseout = "this.className ='icon'"
class="icon" alt="${text.toolbar.refresh}" title="${text.toolbar.refresh}" border="1"></a
><img src="icon_line.gif" class="iconLine" alt=""
></td><td class="toolbar"><input type="checkbox" name="autocommit" value="autocommit"
onclick="javascript:if(document.header.autocommit.checked)
></td><td class="toolbar"><input type="checkbox" name="autoCommit" value="autoCommit"
onclick="javascript:if(document.header.autoCommit.checked)
top.frames['h2result'].document.location='query.do?jsessionid=${sessionId}&amp;sql=@AUTOCOMMIT+TRUE';
else
top.frames['h2result'].document.location='query.do?jsessionid=${sessionId}&amp;sql=@AUTOCOMMIT+FALSE';
"
></td><td class="toolbar">${text.toolbar.autocommit}&nbsp;</td><td class="toolbar"
></td><td class="toolbar">${text.toolbar.autoCommit}&nbsp;</td><td class="toolbar"
><a href="query.do?jsessionid=${sessionId}&amp;sql=ROLLBACK" target="h2result"
><img src="icon_rollback.gif"
onmouseover = "this.className ='icon_hover'"
......@@ -68,11 +68,11 @@ Initial Developer: H2 Group
onmouseout = "this.className ='icon'"
class="icon" alt="${text.toolbar.history}" title="${text.toolbar.history}" border="1"></a
><img src="icon_line.gif" class="iconLine" alt=""
></td><td class="toolbar">${text.toolbar.autocomplete}&nbsp;<select name="autocomplete" size="1"
onchange="javascript:top.frames['h2query'].setAutocomplete(this.value)"
><option value="0">${text.toolbar.autocomplete.off}</option>
<option selected="selected" value="1">${text.toolbar.autocomplete.normal}</option>
<option value="2">${text.toolbar.autocomplete.full}</option>
></td><td class="toolbar">${text.toolbar.autoComplete}&nbsp;<select name="autoComplete" size="1"
onchange="javascript:top.frames['h2query'].setAutoComplete(this.value)"
><option value="0">${text.toolbar.autoComplete.off}</option>
<option selected="selected" value="1">${text.toolbar.autoComplete.normal}</option>
<option value="2">${text.toolbar.autoComplete.full}</option>
</select
></td
><td class="toolbar"
......@@ -85,7 +85,7 @@ Initial Developer: H2 Group
</form>
<script type="text/javascript">
<!--
document.header.autocommit.checked = '${autocommit}' != '';
document.header.autoCommit.checked = '${autoCommit}' != '';
//-->
</script>
</body>
......
......@@ -80,6 +80,6 @@ ${text.helpAddDriversOnlyJava}
</div>
<table id="h2auto" class="autocomp"><tbody></tbody></table>
<table id="h2auto" class="autoComp"><tbody></tbody></table>
</body></html>
\ No newline at end of file
......@@ -13,13 +13,13 @@ Initial Developer: H2 Group
var agent=navigator.userAgent.toLowerCase();
var is_opera = agent.indexOf("opera") >= 0;
var autocomplete = 1;
var autoComplete = 1;
var selectedRow = -1;
var lastList = '';
var lastQuery = null;
var columnsByTable = new Object();
var tableAliases = new Object();
var showAutocompleteWait = 0;
var showAutoCompleteWait = 0;
var req;
function refreshTables() {
......@@ -151,8 +151,8 @@ function insertText(s, isTable) {
if (document.selection) {
// IE
field.focus();
sel = document.selection.createRange();
sel.text = s;
selection = document.selection.createRange();
selection.text = s;
} else if (field.selectionStart || field.selectionStart == '0') {
// Firefox
var startPos = field.selectionStart;
......@@ -169,22 +169,22 @@ function insertText(s, isTable) {
}
function keyUp() {
if(autocomplete != 0) {
showAutocomplete();
if(autoComplete != 0) {
showAutoComplete();
}
return true;
}
function showAutocomplete() {
if(showAutocompleteWait==0) {
showAutocompleteWait=5;
setTimeout('showAutocompleteNow()', 100);
function showAutoComplete() {
if(showAutoCompleteWait==0) {
showAutoCompleteWait=5;
setTimeout('showAutoCompleteNow()', 100);
} else {
showAutocompleteWait-=1;
showAutoCompleteWait-=1;
}
}
function showAutocompleteNow() {
function showAutoCompleteNow() {
var input = document.h2query.sql;
setSelection(input);
var pos = input.selectionStart;
......@@ -193,7 +193,7 @@ function showAutocompleteNow() {
lastQuery = s;
retrieveList(s);
}
showAutocompleteWait = 0;
showAutoCompleteWait = 0;
}
function keyDown(event) {
......@@ -205,13 +205,13 @@ function keyDown(event) {
document.h2query.submit();
return false;
} else if(key == 32 && event.ctrlKey) {
showAutocomplete();
showAutoComplete();
return false;
} else if(key == 190 && autocomplete==0) {
} else if(key == 190 && autoComplete==0) {
help();
return true;
}
var table = getAutocompleteTable();
var table = getAutoCompleteTable();
if(table.rows.length > 0) {
if(key == 27) {
while(table.rows.length > 0) {
......@@ -225,8 +225,8 @@ function keyDown(event) {
if(row.cells.length>1) {
insertText(row.cells[1].innerHTML);
}
if(autocomplete == 0) {
setAutocomplete(0);
if(autoComplete == 0) {
setAutoComplete(0);
}
return false;
}
......@@ -248,18 +248,18 @@ function keyDown(event) {
// alert('key:' + key);
// bs:8 ret:13 lt:37 up:38 rt:39 dn:40 tab:9
// pgup:33 pgdn:34 home:36 end:35 del:46 shift:16
// ctrl,altgr:17 alt:18 caps:20 5(num):12 ins:45
// ctrl,alt gr:17 alt:18 caps:20 5(num):12 ins:45
// pause:19 f1..13:112..123 win-start:91 win-ctx:93 esc:27
}
function setAutocomplete(value) {
autocomplete = value;
function setAutoComplete(value) {
autoComplete = value;
if(value != 1) {
var s = lastList;
lastList = '';
showList(s);
} else {
var table = getAutocompleteTable();
var table = getAutoCompleteTable();
while(table.rows.length > 0) {
table.deleteRow(0);
}
......@@ -271,12 +271,12 @@ function highlightRow(row) {
if(row != null) {
selectedRow = row;
}
var table = getAutocompleteTable();
var table = getAutoCompleteTable();
highlightThisRow(table.rows[selectedRow]);
}
function highlightThisRow(row) {
var table = getAutocompleteTable();
var table = getAutoCompleteTable();
for(var i=0; i<table.rows.length; i++) {
var r = table.rows[i];
var col = (r == row) ? '#95beff' : '';
......@@ -288,7 +288,7 @@ function highlightThisRow(row) {
showOutput('none');
}
function getAutocompleteTable() {
function getAutoCompleteTable() {
return top.h2result.document.getElementById('h2auto');
// return top.frames['h2result'].document.getElementById('h2auto');
// return top.h2menu.h2result.document.getElementById('h2auto');
......@@ -304,14 +304,14 @@ function showList(s) {
}
lastList = s;
var list = s.length == 0 ? null : s.split('|');
var table = getAutocompleteTable();
var table = getAutoCompleteTable();
if(table == null) {
return;
}
while(table.rows.length > 0) {
table.deleteRow(0);
}
if(autocomplete==0) {
if(autoComplete==0) {
return;
}
selectedRow = 0;
......@@ -321,7 +321,7 @@ function showList(s) {
for(var i=0; list != null && i<list.length; i++) {
var kv = list[i].split('#');
var type = kv[0];
if(type > 0 && autocomplete != 2) {
if(type > 0 && autoComplete != 2) {
continue;
}
var row = doc.createElement("tr");
......@@ -333,7 +333,7 @@ function showList(s) {
break;
}
count++;
cell.className = 'autocomp' + type;
cell.className = 'autoComp' + type;
key = decodeURIComponent(key);
row.onmouseover = function(){highlightThisRow(this)};
if(!document.all || is_opera) {
......@@ -404,8 +404,8 @@ function sendAsyncRequest(url) {
req.open("GET", url, true);
req.send("");
} else {
var getlist = document.getElementById('h2iframeTransport');
getlist.src = url;
var getList = document.getElementById('h2iframeTransport');
getList.src = url;
}
}
......
......@@ -16,6 +16,6 @@ Initial Developer: H2 Group
${result}
</div>
<table id="h2auto" class="autocomp"><tbody></tbody></table>
<table id="h2auto" class="autoComp"><tbody></tbody></table>
</body></html>
......@@ -271,7 +271,7 @@ td.contentResult {
margin:10px;
}
table.autocomp {
table.autoComp {
background-color: #e0ecff;
border: 1px solid #7f9db9;
cursor: pointer;
......@@ -284,28 +284,28 @@ table.autocomp {
border-spacing:2px;
}
td.autocomp0 {
td.autoComp0 {
border-spacing: 0px;
padding: 1px 8px;
background-color: #cce0ff;
border: 0px;
}
td.autocomp1 {
td.autoComp1 {
border-spacing: 0px;
padding: 1px 8px;
background-color: #e7f0ff;
border: 0px;
}
td.autocomp2 {
td.autoComp2 {
border-spacing: 0px;
padding: 1px 8px;
background-color: #ffffff;
border: 0px;
}
td.autocompHide {
td.autoCompHide {
padding: 2px;
display: none;
}
......
......@@ -32,7 +32,7 @@ function initSort() {
for(var j=0;j<header.cells.length;j++) {
var cell = header.cells[j];
var text = cell.innerHTML;
cell.innerHTML = '<a href="#" style="text-decoration: none;" class="sortheader" onclick="resortTable(this);">'+text+'<span class="sortarrow">&nbsp;&nbsp;</span></a>';
cell.innerHTML = '<a href="#" style="text-decoration: none;" class="sortHeader" onclick="resortTable(this);">'+text+'<span class="sortArrow">&nbsp;&nbsp;</span></a>';
}
}
}
......@@ -83,16 +83,16 @@ function getInnerText(el) {
return str;
}
function resortTable(lnk) {
function resortTable(link) {
// get the span
var span;
for (var ci=0;ci<lnk.childNodes.length;ci++) {
if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') {
span = lnk.childNodes[ci];
for (var ci=0;ci<link.childNodes.length;ci++) {
if (link.childNodes[ci].tagName && link.childNodes[ci].tagName.toLowerCase() == 'span') {
span = link.childNodes[ci];
}
}
var spantext = getInnerText(span);
var td = lnk.parentNode;
var td = link.parentNode;
var column = td.cellIndex;
var table = getParent(td,'TABLE');
......@@ -125,13 +125,13 @@ function resortTable(lnk) {
newRows.sort(sortCallback);
var arrow;
if (span.getAttribute("sortdir") == 'down') {
if (span.getAttribute("sortDir") == 'down') {
arrow = '&nbsp;<img src="sort_up.gif" with=7 height=10 border=0>';
newRows.reverse();
span.setAttribute('sortdir','up');
span.setAttribute('sortDir','up');
} else {
arrow = '&nbsp;<img src="sort_down.gif" with=7 height=10 border=0>';
span.setAttribute('sortdir','down');
span.setAttribute('sortDir','down');
}
//alert("start move");
......@@ -144,12 +144,12 @@ function resortTable(lnk) {
//alert("end");
// delete any other arrows there may be showing
var allspans = document.getElementsByTagName("span");
for (var i=0;i<allspans.length;i++) {
if (allspans[i].className == 'sortarrow') {
var allSpans = document.getElementsByTagName("span");
for (var i=0;i<allSpans.length;i++) {
if (allSpans[i].className == 'sortArrow') {
// in the same table as us?
if (getParent(allspans[i],"table") == getParent(lnk,"table")) {
allspans[i].innerHTML = '&nbsp;&nbsp;';
if (getParent(allSpans[i],"table") == getParent(link,"table")) {
allSpans[i].innerHTML = '&nbsp;&nbsp;';
}
}
}
......
......@@ -25,5 +25,6 @@ public interface DataHandler {
// only temporarily, until LOB_FILES_IN_DIRECTORIES is enabled
int allocateObjectId(boolean needFresh, boolean dataFile);
String createTempFile() throws SQLException;
Object getLobSyncObject();
}
......@@ -178,7 +178,7 @@ public class DiskFile implements CacheWriter {
byte[] b2 = buff.toByteArray();
return b2;
} catch(IOException e) {
// will probably never happen, because only in-memory strutures are used
// will probably never happen, because only in-memory structures are used
return null;
}
}
......
......@@ -30,7 +30,7 @@ import org.h2.util.ObjectArray;
* [delete/insert only:]
* int storage
* int record.pos
* int record.blockcount
* int record.blockCount
* [prepare commit only:]
* string transaction
*/
......
......@@ -962,8 +962,8 @@ public class MetaTable extends Table {
if(!checkIndex(session, tableName, indexFrom, indexTo)) {
continue;
}
int upd = getRefAction(ref.getUpdateAction());
int del = getRefAction(ref.getDeleteAction());
int update = getRefAction(ref.getUpdateAction());
int delete = getRefAction(ref.getDeleteAction());
for(int j=0; j<cols.length; j++) {
add(rows, new String[] {
catalog, // PKTABLE_CATALOG
......@@ -975,8 +975,8 @@ public class MetaTable extends Table {
identifier(tab.getName()), // FKTABLE_NAME
identifier(cols[j].getName()), // FKCOLUMN_NAME
String.valueOf(j + 1), // ORDINAL_POSITION
String.valueOf(upd), // UPDATE_RULE SMALLINT
String.valueOf(del), // DELETE_RULE SMALLINT
String.valueOf(update), // UPDATE_RULE SMALLINT
String.valueOf(delete), // DELETE_RULE SMALLINT
identifier(ref.getName()), // FK_NAME
null, // PK_NAME
"" + DatabaseMetaData.importedKeyNotDeferrable, // DEFERRABILITY
......@@ -1139,20 +1139,20 @@ public class MetaTable extends Table {
private void addPrivileges(ObjectArray rows, DbObject grantee, String catalog, Table table, String column, int rightMask) throws SQLException {
if((rightMask & Right.SELECT) != 0) {
addPrivileg(rows, grantee, catalog, table, column, "SELECT");
addPrivilege(rows, grantee, catalog, table, column, "SELECT");
}
if((rightMask & Right.INSERT) != 0) {
addPrivileg(rows, grantee, catalog, table, column, "INSERT");
addPrivilege(rows, grantee, catalog, table, column, "INSERT");
}
if((rightMask & Right.UPDATE) != 0) {
addPrivileg(rows, grantee, catalog, table, column, "UPDATE");
addPrivilege(rows, grantee, catalog, table, column, "UPDATE");
}
if((rightMask & Right.DELETE) != 0) {
addPrivileg(rows, grantee, catalog, table, column, "DELETE");
addPrivilege(rows, grantee, catalog, table, column, "DELETE");
}
}
private void addPrivileg(ObjectArray rows, DbObject grantee, String catalog, Table table, String column, String right) throws SQLException {
private void addPrivilege(ObjectArray rows, DbObject grantee, String catalog, Table table, String column, String right) throws SQLException {
String isGrantable = "NO";
if(grantee.getType() == DbObject.USER) {
User user = (User)grantee;
......
......@@ -14,7 +14,6 @@ public class PlanItem {
private Index index;
private int todoObjectArray;
private PlanItem joinPlan;
public void setIndex(Index index) {
......
......@@ -45,7 +45,6 @@ public class TableFilter implements ColumnResolver {
private Row current;
private int state;
private int todo;
private ObjectArray joins;
// private TableFilter join;
......@@ -264,14 +263,14 @@ public class TableFilter implements ColumnResolver {
TableFilter join = getTableFilter(i);
join.reset();
}
boolean cont = false;
boolean doContinue = false;
for(int i=0; joins != null && i<joins.size(); i++) {
TableFilter join = getTableFilter(i);
if(!join.next()) {
cont = true;
doContinue = true;
}
}
if(cont) {
if(doContinue) {
continue;
}
// check if it's ok
......
......@@ -77,15 +77,15 @@ public class TableLink extends Table {
try {
stat = conn.createStatement();
rs = stat.executeQuery("SELECT * FROM " + originalTable + " T WHERE 1=0");
ResultSetMetaData rsm = rs.getMetaData();
for(i=0; i<rsm.getColumnCount();) {
String n = rsm.getColumnName(i+1);
ResultSetMetaData rsMeta = rs.getMetaData();
for(i=0; i<rsMeta.getColumnCount();) {
String n = rsMeta.getColumnName(i+1);
if(storesLowerCase && n.equals(StringUtils.toLowerEnglish(n))) {
n = StringUtils.toUpperEnglish(n);
}
int sqlType = rsm.getColumnType(i+1);
long precision = rsm.getPrecision(i+1);
int scale = rsm.getScale(i+1);
int sqlType = rsMeta.getColumnType(i+1);
long precision = rsMeta.getPrecision(i+1);
int scale = rsMeta.getScale(i+1);
int type = DataType.convertSQLTypeToValueType(sqlType);
precision = Math.max(precision, DataType.getDataType(type).defaultPrecision);
Column col = new Column(n, type, precision, scale);
......@@ -127,7 +127,7 @@ public class TableLink extends Table {
try {
rs = meta.getIndexInfo(null, null, originalTable, false, false);
} catch(SQLException e) {
// Oracle throws an exception if the table is not found or is a SYNONMY
// Oracle throws an exception if the table is not found or is a SYNONYM
rs = null;
}
String indexName = null;
......
......@@ -52,8 +52,6 @@ public abstract class FileBase {
ok = true;
} else if(f.endsWith(Constants.SUFFIX_LOB_FILE)) {
ok = true;
} else if(f.endsWith(Constants.SUFFIX_SUMMARY_FILE)) {
ok = true;
} else if(all) {
if(f.endsWith(Constants.SUFFIX_LOCK_FILE)) {
ok = true;
......
......@@ -840,4 +840,11 @@ public class Recover implements DataHandler {
return null;
}
/**
* INTERNAL
*/
public Object getLobSyncObject() {
return this;
}
}
......@@ -72,6 +72,7 @@ public class RunScript {
String script = "backup.sql";
String options = null;
boolean continueOnError = false;
boolean showTime = false;
for (int i = 0; args != null && i < args.length; i++) {
if (args[i].equals("-url")) {
url = args[++i];
......@@ -83,6 +84,8 @@ public class RunScript {
continueOnError = true;
} else if (args[i].equals("-script")) {
script = args[++i];
} else if (args[i].equals("-time")) {
showTime = true;
} else if (args[i].equals("-driver")) {
String driver = args[++i];
try {
......@@ -117,7 +120,9 @@ public class RunScript {
}
// }
time = System.currentTimeMillis() - time;
System.out.println("Done in " + time + " ms");
if(showTime) {
System.out.println("Done in " + time + " ms");
}
}
/**
......
......@@ -195,9 +195,9 @@ public class SimpleResultSet implements ResultSet, ResultSetMetaData {
}
/**
* Returns whether the last column accessed was a null value.
* Returns whether the last column accessed was null.
*
* @return true if the last column accessed was a null value
* @return true if the last column accessed was null
*/
public boolean wasNull() throws SQLException {
return wasNull;
......
......@@ -46,20 +46,20 @@ public class Cache2Q implements Cache {
values = new CacheObject[len];
sizeIn = sizeOut = sizeMain = 0;
sizeRecords = 0;
recalcMax();
recalculateMax();
}
void setPercentIn(int percent) {
percentIn = percent;
recalcMax();
recalculateMax();
}
void setPercentOut(int percent) {
percentOut = percent;
recalcMax();
recalculateMax();
}
private void recalcMax() {
private void recalculateMax() {
maxMain = maxSize;
maxIn = maxSize * percentIn / 100;
maxOut = maxSize * percentOut / 100;
......@@ -305,7 +305,7 @@ public class Cache2Q implements Cache {
public void setMaxSize(int newSize) throws SQLException {
maxSize = newSize < 0 ? 0 : newSize;
recalcMax();
recalculateMax();
removeOld();
}
......
......@@ -152,17 +152,17 @@ public class DateTimeUtils {
if(s.endsWith("Z")) {
s = s.substring(0, s.length()-1);
} else {
int tzstart = s.indexOf('+', s2 + 1);
if(tzstart < 0) {
tzstart = s.indexOf('-', s2 + 1);
int timezoneStart = s.indexOf('+', s2 + 1);
if(timezoneStart < 0) {
timezoneStart = s.indexOf('-', s2 + 1);
}
if(tzstart >= 0) {
String tzName = "GMT" + s.substring(tzstart);
if(timezoneStart >= 0) {
String tzName = "GMT" + s.substring(timezoneStart);
tz = TimeZone.getTimeZone(tzName);
if(!tz.getID().equals(tzName)) {
throw Message.getSQLException(errorCode, s + " " + tz.getID() + "/" + tzName);
}
s = s.substring(0, tzstart);
s = s.substring(0, timezoneStart);
}
}
......
......@@ -23,7 +23,7 @@ public class ExactUTF8InputStreamReader extends Reader {
public void close() throws IOException {
}
public int read(char[] cbuf, int off, int len) throws IOException {
public int read(char[] chars, int off, int len) throws IOException {
for(int i=0; i<len; i++, off++) {
int x = in.read();
if(x < 0) {
......@@ -31,11 +31,11 @@ public class ExactUTF8InputStreamReader extends Reader {
}
x = x & 0xff;
if(x < 0x80) {
cbuf[off] = (char)x;
chars[off] = (char)x;
} else if(x >= 0xe0) {
cbuf[off] = (char)(((x & 0xf) << 12) + ((in.read() & 0x3f) << 6) + (in.read() & 0x3f));
chars[off] = (char)(((x & 0xf) << 12) + ((in.read() & 0x3f) << 6) + (in.read() & 0x3f));
} else {
cbuf[off] = (char)(((x & 0x1f) << 6) + (in.read() & 0x3f));
chars[off] = (char)(((x & 0x1f) << 6) + (in.read() & 0x3f));
}
}
return len;
......
......@@ -386,9 +386,9 @@ public class StringUtils {
* Parses a date using a format string
*/
public static Date parseDateTime(String date, String format, String locale, String timezone) throws SQLException {
SimpleDateFormat sdf = getDateFormat(format, locale, timezone);
SimpleDateFormat dateFormat = getDateFormat(format, locale, timezone);
try {
return sdf.parse(date);
return dateFormat.parse(date);
} catch(ParseException e) {
throw Message.getSQLException(Message.PARSE_ERROR_1, date);
}
......
......@@ -51,7 +51,7 @@ public class CompareMode {
public static Collator getCollator(String name) {
Collator result = null;
if(name.length() == 2) {
Locale locale = new Locale(name.toLowerCase());
Locale locale = new Locale(name.toLowerCase(), "");
if(compareLocaleNames(locale, name)) {
result = Collator.getInstance(locale);
}
......
......@@ -607,7 +607,14 @@ public abstract class Value {
return false;
}
public void unlink(DataHandler handler) throws SQLException {
public void unlink() throws SQLException {
}
public boolean isFileBased() {
return false;
}
public void close() throws SQLException {
}
}
......@@ -337,26 +337,35 @@ public class ValueLob extends Value {
public boolean isLinked() {
return linked;
}
public void close() throws SQLException {
if(fileName != null) {
if(tempFile != null) {
tempFile.stopAutoDelete();
}
deleteFile(handler, fileName);
}
}
public void unlink(DataHandler handler) throws SQLException {
public void unlink() throws SQLException {
if (linked && fileName != null) {
String temp;
if(Constants.LOB_FILES_IN_DIRECTORIES) {
temp = getFileName(handler, -1, objectId);
} else {
// just to get a filename - an empty file will be created
temp = handler.createTempFile();
// synchronize on the database, to avoid concurrent temp file creation / deletion / backup
synchronized(handler) {
if(Constants.LOB_FILES_IN_DIRECTORIES) {
temp = getFileName(handler, -1, objectId);
} else {
// just to get a filename - an empty file will be created
temp = handler.createTempFile();
}
deleteFile(handler, temp);
renameFile(handler, fileName, temp);
tempFile = FileStore.open(handler, temp, null);
tempFile.autoDelete();
tempFile.closeSilently();
fileName = temp;
linked = false;
}
// delete the temp file
// TODO could there be a race condition? maybe another thread creates the file again?
FileUtils.delete(temp);
// rename the current file to the temp file
FileUtils.rename(fileName, temp);
tempFile = FileStore.open(handler, temp, null);
tempFile.autoDelete();
tempFile.closeSilently();
fileName = temp;
linked = false;
}
}
......@@ -374,7 +383,7 @@ public class ValueLob extends Value {
}
copy.tableId = tabId;
String live = getFileName(handler, copy.tableId, copy.objectId);
FileUtils.copy(fileName, live);
copyFile(handler, fileName, live);
copy.fileName = live;
copy.linked = true;
return copy;
......@@ -384,7 +393,7 @@ public class ValueLob extends Value {
String live = getFileName(handler, tableId, objectId);
tempFile.stopAutoDelete();
tempFile = null;
FileUtils.rename(fileName, live);
renameFile(handler, fileName, live);
fileName = live;
linked = true;
}
......@@ -575,7 +584,7 @@ public class ValueLob extends Value {
for(int i=0; i<list.length; i++) {
String name = list[i];
if(name.startsWith(prefix+"." + tableId) && name.endsWith(".lob.db")) {
FileUtils.delete(name);
deleteFile(handler, name);
}
}
}
......@@ -589,7 +598,7 @@ public class ValueLob extends Value {
} else {
String name = list[i];
if(name.endsWith(".t" + tableId + ".lob.db")) {
FileUtils.delete(name);
deleteFile(handler, name);
}
}
}
......@@ -598,5 +607,28 @@ public class ValueLob extends Value {
public boolean useCompression() {
return compression;
}
public boolean isFileBased() {
return fileName != null;
}
private static synchronized void deleteFile(DataHandler handler, String fileName) throws SQLException {
// synchronize on the database, to avoid concurrent temp file creation / deletion / backup
synchronized(handler.getLobSyncObject()) {
FileUtils.delete(fileName);
}
}
private static synchronized void renameFile(DataHandler handler, String oldName, String newName) throws SQLException {
synchronized(handler.getLobSyncObject()) {
FileUtils.rename(oldName, newName);
}
}
private void copyFile(DataHandler handler, String fileName, String live) throws SQLException {
synchronized(handler.getLobSyncObject()) {
FileUtils.copy(fileName, live);
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论