在SQL Server中查詢材料庫的TABLE數目與稱號的sql語句。本站提示廣大學習愛好者:(在SQL Server中查詢材料庫的TABLE數目與稱號的sql語句)文章只能為提供參考,不一定能成為您想要的結果。以下是在SQL Server中查詢材料庫的TABLE數目與稱號的sql語句正文
在撰寫本 developerWorks 系列文章的進程中,我曾碰到過以最好格局停止撰寫的成績。文字處置法式格局都是公用的,在格局之間轉換總不克不及盡善盡美,也很費事(並且每種格局都邑各自將文檔綁定到分歧的公用對象,這類情形又與開放源碼的精力相違反)。HTML 還算中立 -- 或許您如今浏覽的文章恰是這類格局 -- 但它也添加了標志,而這些標志很輕易惹起誤輸出(或許令人約束於 HTML 加強型編纂器)。DocBook 是一種風趣的 XML 格局,它可以轉換成很多目的格局,而且它具有技巧文章(或書本)的准確語義;但就像 HTML 一樣,在撰寫進程中會擔憂很多標志。LaTeX 特殊合適龐雜的印刷格局;但它也有很多標志,而這些文章其實不須要龐雜的印刷格局。
為了在寫作時能真正省心 -- 特殊是要具有平台和對象的中立性 -- 無格局 ASCII 恰是最好的選擇。然則,因特網(特殊是 Usenet)建議在完整無格局文本的基本上,開辟一種“智能 ASCII”文檔的非正式尺度(請參閱 參考材料 )。“智能 ASCII”只添加了一點額定的語義內容和高低文,並且它們在文本顯示中看起來是那末“天然”。電子郵件、消息組郵件、FAQ、項目自述文件 (README) 和其它電子文檔平日包含一些印刷/語義元素,如強調字前後的星號、題目下的下劃線、描寫文本關系的豎直和程度空格、有選擇性的全年夜寫和其它一些信息。Project Gutenberg(請參閱 參考材料 )是一種驚人的結果,它將很多設法主意參加其本身格局構想中,並以為“智能 ASCII”是長時光保留和分發好書的最好選擇。即便這些文章不會像文學名著那樣經久不衰,仍決議將它們寫成“智能 ASCII”格局,並用便利的 Python 劇本將它們主動轉換成其它格局。
引見 Txt2Html
Txt2Html 最後是一個簡略的文件轉換器,從其稱號上便可以看出。但因特網建議在對象上添加幾個顯著的加強功效。由於有很多讀者想以“HTML 化”格局檢查的文檔都在 http: 或 ftp: 鏈接的前面,所以對象應當真正派接處置如許的長途文檔(而不須要下載/轉換/檢查輪回周期)。由於轉換的目的終究是 HTML,平日我們要做的就是在 Web 閱讀器中檢查轉換後的目的文檔。
將這些放到一路後,Txt2Html 就成了“基於 Web 的過濾署理”。這個詞很獨特,或許正好能“完整表達其寄義”。它們表現了以下設法主意:法式代表您浏覽 Web 頁面(或其它資本),以某種方法處置內容,然後以某種比原始頁面 更好 的情勢(至多能知足某些特別目標)向您顯示該頁面。這類對象的一個很好例子就是 Babelfish 翻譯辦事(請參閱 參考材料 )。在經由過程 Babelfish 運轉了 URL 以後,您看到的 Web 頁面與原始頁面異常類似,但它顯示了您可以或許讀懂的文字,而不是您不睬解的說話。在某種水平上,一切顯示搜刮成果頁面摘要的搜刮引擎所做的都是雷同的工作。但那些搜刮引擎(按設計)在目的頁面的格局和外不雅方面有更多的自在度,同時會去失落很多內容。固然,Txt2Html 其實不如 Babelfish 那樣功效壯大;但概念上,它們很年夜水平上完成雷同的工作。請參閱 參考材料以獲得更多的例子,個中一些還很滑稽。
Txt2Html 最年夜的長處是應用很多編程技能,而這些技能關於分歧面向 Web 應用 Python 是共通的。本文將引見那些技能,並會解釋編碼技能和一些 Python 模塊的感化域。請留意:Txt2Html 中的現實模塊叫做 dmTxt2Html,以免與其別人編寫的模塊稱號產生抵觸。
應用 cgi 模塊
Python 尺度刊行版中的 cgi 模塊關於任何用 Python 開辟“公共網關接口”運用法式的人來講都是不測欣喜。可以不應用它來創立 CGI,但您不會如許做。
最平日的情形下,您會經由過程 HTML 表單與 CGI 運用法式停止交互。要填寫挪用 CGI 的表單以履行應用標准的操作。例如,Txt2Html 文檔應用這個例子來挪用 HTML 表單(Txt2Html 本身生成的表單比擬龐雜,而且能夠會轉變,但示例將會很好地任務,乃至是在您本身的 Web 頁面中):
挪用 'Txt2Html' 的 HTML 表單
<form method="get" action="http://gnosis.cx/cgi/txt2html.cgi">
URL: <input type="text" name="source" size=40>
<input type="submit" name="go" value="Display!">
</form>
可以在 HTML 表單中包含很多輸出字段,而字段可所以很多分歧類型中的一種(文本、復選框、單選列表、單選按鈕等)。任何講述 HTML 的好書可以贊助初學者創立定制 HTML 表單。此處最須要切記的是每一個字段都著名稱屬性,而今後會在 CGI 劇本中應用該稱號來援用該字段。另外一個須要懂得的細節是表單可使用以下兩種辦法中的一種:"get" 和 "post"。它們的根本差別是 "get" 在 URL 中包含了查詢信息,而且這個辦法應用戶易於保留特定查詢以便往後反復應用。另外一方面,假如您不願望用戶保留查詢,請應用 "post" 辦法。
以上表單挪用的 Python 劇本將導入 cgi 以使整頓其挪用表單變得更輕易。這個模塊所做的一件事就是隱蔽 CGI 劇本中 "get" 和 "post" 辦法之間差別的任何細節。在停止挪用之前,這其實不是 CGI 創立法式須要費心的細節。該 CGI 模塊的重要感化是處置相似於字典款式的挪用 HTML 表單中的一切字段。您所獲得的其實不是 真正 的 Python 字典,但它們的應用方法極端類似:
應用 Python [cgi] 模塊
import cgi, sys cfg_dict = { 'target': '<STDOUT>'} sys.stderr = sys.stdout form = cgi.FieldStorage() if form.has_key( 'source'): cfg_dict[ 'source'] = form[ 'source'].value
在以上幾行中,要留意幾處細節。我們所應用的一個技能是設置 sys.stderr = sys.stdout。假如我們的劇本碰到了一個未捕捉的毛病,經由過程這個操作,追溯就顯示回到客戶機閱讀器。這可以節儉很多調試 CGI 運用法式的時光。但您或許不想讓用戶看到這些(或許假如它們能夠向您申報成績具體信息,您或許會向用戶顯示這些內容)。接著,我們將 HTML 表單值讀取到相似於字典的 form 實例中。表單有一個 .has_key() 辦法,這與真實的 Python 字典異常類似。然則,與 Python 字典分歧,要真正獲得鍵中的值,我們必需檢查鍵的 .value 屬性。
至此,HTML 表單中的一切器械都成了純 Python 變量,並且我們可以在其它任何 Python 法式中處置它們。
應用 urllib 模塊
就像年夜多半 Python 模塊一樣,urllib 以直不雅且簡略的辦法處置很多龐雜事物。urllib 中的 urlopen() 函數可以處置任何長途資本 -- 不管是 http:、ftp: 照樣 gopher: --就將它看成是當地文件。假如應用 urlopen() 抓取了一個長途(偽)文件對象,可以將它看成當地(只讀)文件的文件對象來停止處置:
應用 Python [urllib] 模塊
from urllib import urlopen import string source = cfg_dict[ 'source'] if source == '<STDIN>': fhin = sys.stdin else : try : fhin = urlopen(source) except : ErrReport(source+ ' could not be opened!', cfg_dict) return doc = '' for line in fhin.readlines(): # Need to normalize line endings! doc = doc+string.rstrip(line)+ '\n'
我曾碰到過一個小成績,因為生成資本的平台和您的平台應用分歧的行停止商定,生成的文本中能夠會產生某些奇異的事(這仿佛是 urllib 中的毛病)。這個成績的處理辦法是在以上代碼中履行小小的 .readlines() 輪回。不論該資本本來是甚麼模樣,這個操作會給您一個字符串,它都有所應用平台的准確行停止商定(估量能夠公道)。
應用 re 模塊
因為本文篇幅限制,這裡只評論辯論一部門規矩表達式。參考材料中列出了很多關於該主題的參考書本。 re 模塊在 Txt2Html 中的應用很普遍,用於標識源文本中的各類文本形式。我們檢查一個比擬龐雜的例子:
應用 Python [re] 模塊
import re def URLify (txt): txt = re.sub( '((?:http|ftp|gopher|file)://(?:[^ \n\r<\)]+))(\s)', '<a href="\\1">\\1</a>\\2', txt) return txt
URLify() 是一個玲珑函數,它的功效正如其稱號所示。假如在“智能 ASCII”文件中碰到了相似於 URL 的字符串,它將轉換成 HTML 輸入中統一個 URL 真實的熱鏈接。讓我們看看 re.sub() 的感化。起首,從最重要的角度來看,函數的目標是“查找與第一個形式中的值婚配的字符串,然後經由過程將第三個變量作為要操作的字符串,以第二個形式調換婚配成果”。異常好,從這些角度來看,它與 string.replace() 沒有甚麼差別。
第一個形式有幾個元素。起首,請留意括號:最高條理由兩對括號構成:(\S) 前龐雜的字符串。括號對與能夠構成部門調換形式的“子表達式”婚配。第二個子表達式 (\s) 只表現“查找與任何空格字符婚配的字符串,讓我們回過去看甚麼與之婚配”。是以,讓我們研討一下第一個子表達式。
Python 規矩表達式有它本身的一些技能。個中一個技能是子表達式開端處的 ?: 運算符。這表現“查找子形式的婚配字符串,但不包含反向援用中的婚配成果”。那末,讓我們檢討一下這個子表達式:
((?:http|ftp|gopher|file)://(?:[^ \n\r<\)]+))。
起首,請留意這個子表達式自己由兩個子表達式構成,二者之間的字符其實不屬於任何一方。然則,每一個子表達式都由 ?: 開首,它表現這二者婚配,但不是為了知足援用目標。第一個“非援用”子表達式只表現“查找相似於 http 或ftp 或 其它值的字符串”。接著,我們看到字符串 :// ,它表現查找與它完整類似的字符串(簡略嗎?)。最初,我們看到第二個子表達式,它除有由方括號構成的“不援用”運算符外,還有一個加號。
在規矩表達式中,方括號只表現“查找與方括號中任何字符的婚配字符”。然則,假如第一個字符是拔出記號 (^),寄義則相反,它表現“查找任何與前面的字符 不婚配的字符”。是以,我們正在查找 不 是空格、CR、LF、"<" 或 ")" 的字符(還請留意,可以經由過程在字符後面加 "\",避開關於規矩表達式有特別意義的字符)。開頭處的加號表現“查找最初字符串的一個或多個婚配”(星號表現“零個或多個”,問號表現“零個或一個”)。
這個規矩表達式有很多內容有待懂得,但假如多看幾遍,您就會明確這就是 URL 的格局。
接著就是調換部門。這就更簡略了。看上去相似 \\1 和 \\2 (或許 \\3 、 \\4 等,假如須要的話)的部門就是剛談到的“反向援用”。\\1(或 \\2)表現形式與婚配表達式的第一個(或第二個)子表達式相婚配。調換部門的其他構成部門沒有甚麼特殊寄義:只是一些輕易辨認為 HTML 代碼的字符。有一件事比擬費事,那就是婚配 \\2 -- 它看上去就是一個空格字符。或許有人會問:“有甚麼費事的?為何不直接拔出一個空格字符?”問得好,現實上我們不 須要 履行對 HTML 的操作。但從美學角度來看,最好讓 HTML 輸入盡量保存轉換成 HTML 標志之前的源文本文件外不雅。特別是,讓我們將換行符保存成換行符,空格就是空格(Tab 鍵就是 Tab 鍵)。