The jTDS project has released version 1.2.7 and 1.3.0 of the open source JDBC driver for Microsoft SQL Server and Sybase. The new versions are a quite huge update, also fixing a number of critical bugs and improving the performance, s* we’d highly encourage you t* upgrade.
Version 1.3.0 is the first Java 7 compatible version of the driver and, beside the fix for bug #672, improves performance compared to version 1.2.7. The future development will be focused on the 1.3.x line of the driver, so further enhancements and bug fixes will not necessarily become available it the Java 1.3 compatible jTDS 1.2.x. You should only stick to jTDS 1.2 if you require to use a Java version prior to Java 7.
New features:
Improved the database meta data support by adding (JDBC4) column IS_AUTOINCREMENT.
Implemented support for the COMPUTE (BY) operator (bug #678, patch #48).
Bug fixes:
#528, any ResultSet gets dropped when using RETURN_GENERATED_KEYS.
Fixed a bug that caused Statement.close() to throw an exception for errors caused by previously executed statements.
#609, slow SharedSocket finalization due to expensive locking.
Fixed format conversion errors for DATETIME, DATE and TIME values.
#615, SQL parser fails if function escapes contain nested functions.
#634, incorrect comment processing in callable statements.
Fixed parameter name format for procedure calls using named parameters.
#647, preparing statements including a WITH clause don’t retrieve meta data.
#677, possible deadlock in JtdsStatement.close().
#676, error in SQL parser concerning multi line comments.
#541, data type mismatch when using {ts}/{t}/{d} JDBC escapes.
A number of incorrect error messages have been fixed.
#637, an attempt to execute a standard SQL statement using a CallableStatement now throws an appropriate SQLException on preparation.
#633, possible NPEs in JtdsObjectFactory.
Added missing getter/setter methods for connection property “autoCommit" in class JtdsDataSource.
Corrected data types for connection properties “autoCommit" and “useNTLMv2″.
Added missing default for connection property “useNTLMv2″.
#661, memory pollution caused by ThreadLocal Calendar instances.
#673, buffer overflow in SQL parser.
#643, documentation error.
#659, missing service provider configuration file for JDBC driver class.
#656, unnecessary log pollution during emulated XA recovery.
#667, spurious login timeouts if establishing connections concurrently.
#642, a stream hasn’t been closed in CharsetInfo.
#608, various typos in Messages.properties.
#660, problems with WebRing code of the project website.
Fixed a race condition when closing a Statement in concurrent threads.
在多列狀態下時,若將頁籤放置到左側或右側時,可以勾選【Alphabetical Mode】,放置到上方或下方時則無法勾選,因此變通方法就是將頁籤列放置到右側,並依字母順序排列。這樣找檔案就方便些了。 Image may be NSFW. Clik here to view.
找檔案的快速方法
以下是在編輯區快速找到檔案的幾個方法:
按〔Ctrl+E〕彈出最新開啟過的檔案清單 Image may be NSFW. Clik here to view.
按〔Ctrl+Tab〕彈出檔案切換對話窗,對話窗出現後按住〔Ctrl〕不放再按〔Tab〕可以移動游標位置 Image may be NSFW. Clik here to view.
安裝TabSwitcher Extream外掛;安裝後到設定裡設定,依下列設置將檔案分類。 Image may be NSFW. Clik here to view.
設定好後按〔Alt+A〕就能開啟分類好的檔案清單,分類過後應該能加速挑選的時間。 Image may be NSFW. Clik here to view.
-- this code sends the CTRL+W key combination, which
-- will usually close a window or tab within an application
-- 取得有焦點的視窗
local handle = acGetForegroundWindow()
--acMessageBox(handle,"ActiveWindow",1)
local handleTaskman = acFindWindowByTitleRegex("工作管理員")
local handleEvernote = acFindWindow("ENMainFrame")
local handleConEmu = acFindWindow("VirtualConsoleClass")
local handleIDEA = acFindWindow("SunAwtFrame") -- IntelliJ IDEA
--acMessageBox(handleEvernote,"handle",1)
if (handle == handleTaskman) or (handle == handleEvernote) then
acSendKeys("%{F_4}")
elseif (handle == handleConEmu) then
acSendKeys("@%{DELETE}")
elseif (handle == handleIDEA) then
acSendKeys("^{F_4}")
else
acSendKeys("^w")
end
→手勢:開啟瀏覽器連結
點擊設定視窗的【Configure Actions】→【Internet Browser】後我們可在右側的「File Name Pattern」欄位看到「firefox.exe|chrome.exe|iexplore.exe」表示此處設定是針對此三個瀏覽器而設定的。我將向右手勢修改成開啟連結處網址的功能。 原來的寫法將網址開啟在當頁,我加上按下〔Ctrl〕鍵再點擊,讓網頁開啟在新分頁。
-- this code does one of two things, if the mouse cursor
-- is a HAND, the link below the cursor is opened in a new
-- tab. If the mouse cursor is not a HAND, a new browser
-- tab is opened this action is executed by holding the
-- stroke button and clicking the left mouse button, either
-- over a link or anywhere over the browser for a new tab
if acGetMouseCursorType() == "HAND" then
acSendControlDown()
acMouseClick(gsx, gsy, 2, 1, 1)
acSendControlUp()
else
acSendKeys("^t")
end
建議按〔more options〕以顯示出更多的欄位並繼續輸入資料。【Authorized Redirect URIs】指的是Google帳號輸入正確後要轉址到那個網頁,此網頁可以是Servlet或JSP,Google會傳入「code」參數。最後按〔Create client ID〕,建立client ID時會檢查提供的轉址網址是否能存取,要能存取才能完成建立動作 Image may be NSFW. Clik here to view.
-- this code sends the CTRL+W key combination, which
-- will usually close a window or tab within an application
-- 取得有焦點的視窗
local handle = acGetForegroundWindow()
--acMessageBox(handle,"ActiveWindow",1)
local handleTaskman = acFindWindowByTitleRegex("工作管理員")
local handleEvernote = acFindWindow("ENMainFrame")
local handleConEmu = acFindWindow("VirtualConsoleClass")
local handleIDEA = acFindWindow("SunAwtFrame")
-- acMessageBox(handleEvernote,"handle Evernote",1)
if (handle == handleTaskman) or (handle == handleEvernote)
then
acSendKeys("%{F_4}")
elseif (handle == handleConEmu) then
acSendKeys("@%{DELETE}")
elseif (handle == handleIDEA) then
acSendKeys("^{F_4}")
else
acSendKeys("^w")
end
大約兩年前我們的一個內部知識管理網頁系統(使用Java)決定採用Markdown語法,好讓輸入能更簡便些,當時使用的Markdown程式庫是JMD(Java for MarkDown),JMD是MarkdownSharp的移植(MarkdownSharp當然是C#的版本),使用以來有個困擾的問題:底線的處理有問題。