Q:VisualBasic有哪些版本?它們有什麼區別?
答:VisualBasic有三種版本,各自滿足不同的開發需求。
1.VisualBasic學習版讓程式設計人員輕鬆開發Windows95和WindowsNT(R)的應用程式。此版本包括所有的內部控制項連同Grid、Tab和Data_Bound控制項。學習版提供的文件有《程式設計師指南》、線上協助及VisualBasic《聯機手冊》。
2.專業版為專業程式設計人員提供了一整套進行開發的功能完整的工具。此版本包含學習版的全部功能連同ActiveX控件,還包括Internet控件和CrystalReportWriter。專業版提供的文件有《程式設計師指南》、線上幫助、《零件工具指南》。
3.企業版使得專業程式設計人員能夠開發功能強大的組內分散式應用程式。此版本包括專業版的完整功能連同自動化管理器、零件管理器、資料庫管理工具、MicrosoftVisualSourceSafe(TM)面向工程版的控制系統等等。企業版提供的文檔包括專業版的所有文檔,還有《客戶/伺服器應用程式開髮指南》和SourceSafeUser'sGuide。
Q:安裝Visualbasic需要哪些硬體和軟體?
答:分別需要,
1.MicrosoftWindowsNT3.51或更新的版本,或MicrosoftWindows95;80486或更高的微處理器。
2.如果是全安裝,則至少需要50MB的硬碟空間。
3.一個CD-ROM驅動器。
4.MicrosoftWindows支援的VGA或更高解析度的螢幕。
5.16MBRAM。
6.滑鼠或其它定點設備。
Q:如何得到關於CrystalReports的技術支援?
答:如果您在安裝CrystalReports時發生問題,請與微軟公司聯絡。
如果您需要其他方面的技術支持,請直接與Seagate公司聯絡。
Seagate公司的網頁是http://www.crystalinc.com
或http://www.img.seagatesoftware.com。
Seagate公司的技術支援電話是:01-604-669-8379或01-800-877-2340。
Q:在VisualBasic中可以和哪些資料庫通訊?
答:在VisualBasic中可以和三類資料庫通訊,它們分別是:
1.VisualBasic資料庫-也被稱為本地資料庫,這類資料庫檔案使用與Microsoftaccess相同的格式。 Jet引擎直接創建和操作這些資料庫並且提供了最大程度的靈活性和速度。
2.外部資料庫-它們是使用幾種流行格式的索引順序存取方法(ISAM)資料庫,這些流行格式包括Btrieve、dBASEIII、dBASEIV、MicrosoftFoxPRoversions2.0和2.5以及Paradoxversions3.x和4.0。在VisualBasic中能夠建立和操作所有以上格式的資料庫。也可以存取文字檔案資料庫和MicrosoftExcel或Lotus1-2-3電子表格。
3.ODBC資料庫-包含符合ODBC標準的客戶/伺服器資料庫,如MicrosoftSQLServer。要在VisualBasic中建立真正的客戶/伺服器應用程序,可以使用ODBCDirect直接把命令傳遞給伺服器處理。
Q:在VisualBasic中,如何與串列埠通訊?
答:VisualBasic提供了一個MSCOMM控件,它負責從串列口接受和發送資料。您可以在VisualBasic開發環境下選擇工程,在工程選單下選擇零件,從元件中選擇MicrosoftCommControl,將MSCOMM控制項加入您的工具箱。然後透過設定MSCOMM控制項的屬性來修改串列口通訊參數如通訊口、波特率等。
問:如何在VB中呼叫Win32函數?
答:在VisualBasic的WINAPI子目錄下,您可以找到WIN32API.TXT,它包含Win32所有的函數說明、類型說明和全域常數值。您可以使用VisualBasic的外掛程式VBAPIViewer來選擇您所需的Win32函數,然後透過簡單的複製、貼上技術將該函數的說明放入的VisualBasic工程中,這樣您就可以像呼叫VisualBasic一般函數那樣呼叫它了。
Q:VisualBasic5.0不能正常啟動了,怎麼辦?
答:這可能是兩方面原因造成的:
1.外掛程序出錯。您可以用記事本開啟系統目錄下的VBAddin.ini文件,將每一項的值改為0,即不啟動外掛程式。
2.保存的有關Office命令列的資料出錯。在這種情況下您可以從登錄檔刪除HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/VisualBasic/5.0此一項。修改了以上內容後,您只需重新啟動VisualBasic即可。
問:在VisualBasic中,某些控制項被破壞了怎麼辦?
答:您可以從VB安裝盤中找到回應文件,將它拷貝到系統目錄下。然後用regsvr32手動註冊那些控制。方法為:regsvr32xxxx.ocx
Q:在多用戶環境下,MicrosoftJet如何防止其他用戶修改您的資料?
答:MicrosoftJet提供了三種在不同層級鎖定資料的方法。它可以防止多個用戶同時修改資料。
1.獨佔模式阻止其他所有使用者存取資料庫,這是限制最大的模式。
2.記錄集鎖定鎖定Recordset物件的基本表,用讀表鎖定、寫表鎖定或兩者都用。
3.頁面鎖定鎖定包含正在編輯的資料的頁面,其長度為2048個位元組(2K)。這是限制最小的模式
Q:保守式鎖定與開放式鎖定有什麼不同?
答:使用保守式鎖定時,一旦呼叫Edit方法,引擎就會鎖定包含目前編輯記錄的頁面,直到明確地提交或取消這個記錄的變更後,它才會釋放這個鎖定。但它的缺點鎖定記錄的時間很長,而且不僅鎖定了用戶正在編輯的記錄,而且還會鎖定駐留在該鎖定頁面內的其它記錄。
使用開放式鎖定時,引擎僅在試圖以Update方法提交記錄變更時鎖定頁面。因為鎖定僅在應用程式試圖提交變更時發生,所以能讓鎖定的時間最短。但開放式鎖定的缺點是:當使用者開始編輯記錄時,無法確定更新是否會成功。如果另一個使用者改變了第一個使用者正在編輯的記錄,那麼依賴開放式鎖定的更新將會失敗。
Q:在VB5中,將一個應用程式編譯成NativeCode,在發布該應用程式時,還需要MSVBVM50.DLL嗎?
答:需要。所有用VB5產生的應用程式都需要MSVBVM50.DLL,不管是NativeCode還是P-Code。因為需要MSVBVM50.DLL實作Form、類別模組、語言等許多功能。 NativeCode是指不需要執行時間解釋,直接就能在CPU上運行的程式碼,但並不代表靜態連線,VB5產生的應用程式需要到動態連線庫(DLL)中呼叫函式庫函數。
Q:VB中如何存取VisualFoxPro資料庫?
答:建議在VfoxPro資料庫表中設定PrimaryKey,透過最新版本的VfoxProODBC驅動程式存取VisualFoxPro資料庫,這樣可獲得較好的效能,以及避免在Update時產生問題。
Q:VB5的PictureBox和Image控制支援哪幾種圖形檔格式?
答:PictureBox和Image控制項用來顯示圖形。它可顯示下面幾種格式的圖形:點陣圖、圖示、圖元檔、增強型圖元檔、JPEG或GIF檔。新支援的JPEG或GIF檔案對Web頁很有用。
問:VB中提供了哪些方法用於存取註冊表(Registry)?
答:GetSetting函數,從Windows登錄機碼中的應用程式項目傳回登錄項目設定值。 SaveSetting語句,在Windows登錄中儲存或建立應用程式項目。
DeleteSetting語句,在Windows登錄中,從應用程式項目刪除區域或登錄項目設定。
GetAllSettings函數,從Windows註冊表中傳回應用程式項目的所有登錄項目設定及其對應值(開始是由SaveSetting產生)。
問:在VB5應用程式中,如何把某個事件記入日誌?
答:LogEvent方法,在應用程式的日誌目標中,把某個事件記入日誌。在WindowsNT平台上,該方法會把內容寫到NT的Event日誌中。在Windows95平台上,此方法會把內容寫到LogPath屬性指定的檔案中。依照預設規定,如果不指定文件,事件被寫入vbevents文件。
Q:如何偵測文件是否存在?如何刪除檔案?
答:用Dir函數可偵測檔案是否存在。如果已沒有合乎條件的文件,則Dir會傳回一個零長度字串()。
用Kill語句可刪除檔案。
Q:如何優化VB應用程式的顯示速度?
答:由於MicrosoftWindows的圖形特性,圖形和其它操作的顯示速度在很大程度上決定了應用程式的感覺速度。窗體出現及畫圖的速度越快,應用程式就會顯得越快。以下的幾種技術可用於提高應用程式的顯示速度:
·將容器的ClipControls屬性設定為False。
·恰當地使用AutoRedraw。
·使用Image控制項取代PictureBox控制項。
·設定屬性時隱藏控制項以避免多次重畫。
·使用Line取代PSet。
通常,應用程式的感覺速度和程式碼的實際執行速度並無太大關係。對使用者來說,啟動快、繪畫快並提供不間斷的回饋訊息的應用程式顯得速度快;而在完成任務時似乎懸掛起來的應用程式則顯得速度慢。許多技術都可以使應用程式顯得速度快:
·隱藏窗體而不裝入。
·預先載入資料。
·在後台使用定時器工作。
·使用進度指示器。
·加快應用程式的啟動速度。
Q:VB5在支援Internet/Intranet開發方面有哪些新內容?
答:建立ActiveX文檔
專業版和企業版就像設計VisualBasic窗體那樣既簡單又直覺。 ActiveX文件將VisualBasic應用程式推進到Internet瀏覽器視窗中。
創建自己的ActiveX控件
專業版和企業版組合現有的控件,或由其它控件創建自己的控件。用VisualBasic建立的ActiveX控制項有幾個Internet特徵,包括資料的非同步下載和超連結。
多執行緒的DLL
專業版和企業版標記為無使用者介面執行(即沒有使用者互動)的DLL元件可以有效地用於像Internet瀏覽器那樣的多執行緒應用程式中。
Internet傳輸控制項
專業版和企業版提供HTTP和FTP支援的新控制項。
WinSock控件
專業版和企業版允許連接到遠端電腦上,並與使用用戶資料記錄協定(UDP)或傳輸控制協定(TCP)的其它電腦進行資料交換。
超連結定位
專業版和企業版Hyperlink物件可以控制ActiveX超連線功能的存取。使用Hyperlink物件的屬性和方法,控制項可以要求識別超連結的容器,如:MicrosoftInternetExplorer,跳到給定的URL或透過歷史清單定位。
非同步下載
專業版和企業版透過用VisualBasic建立的ActiveX控制項和ActiveX文檔,非同步下載文件、位元組數組或映像。
ActiveX文件中的選單協商
專業版和企業版當顯示文件時,加入ActiveX文件中的選單可以與InternetExplorer(或其它支援選單協商的瀏覽器)的選單天衣無縫地合併在一起。
ActiveX控制項介面精靈
專業版和企業版一旦加入構成的控制項到UserControl設計器中以後,精靈可以協助將新的ActiveX控制項(即它的介面)的屬性、方法和事件對應成構成的控制項和UserControl物件所提供的功能。
Internet部件下載
專業版和企業版可以使用安裝精靈特別為Web部署的零件打包。 JPEG和GIF支持
所有版本PictureBox和Image控件,以及Picture對象,現在都支援.gif和.jpg文件,這對Web頁很有用。
從開發環境中存取Web
所有版本直接跳到關於VisualBasic和其它開發產品的最新資訊。
Q:如何把傳統的VB應用程式引入瀏覽器執行?
答:ActiveX文檔移植精靈是為了把已有窗體改變成ActiveX文件而設計的。 ActiveX文檔是一種特定類型的ActiveX對象,這類對像在ActiveX文檔容器(如MicrosoftInternetExplorer)裡面能被存放及啟動。
Q:DAO與RDO的比較
答:DAO一般透過MicrosoftJet引擎存取資料庫(下列將要提及的ODBCDirect除外),適用於存取MicrosoftAccess等資料庫;
RDO直接透過ODBC存取資料庫。適用於Client/Server環境,在存取大型資料庫,如MicrosoftSQLServer時將獲得更好的效能。
使用遠端資料物件(RDO)的方式基本上與使用MicrosoftJet資料庫引擎資料存取物件(DAO)的方法類似,RemoteData控制項也與Data控制項類似。使用RDO可以提交查詢、建立結果集或遊標,以及用與資料庫無關的、物件導向的程式碼處理查詢結果。
使用RemoteData控件,可以在建立的窗體中使用能夠被Data控件識別的所有綁定控件;也可以用很少或幾乎不用程式碼處理結果集。
對現有的使用DAO及Data控制項的應用程式作些稍微的改動,即可轉換成使用RDO和RemoteData控制項。它們之間有一些區別,然而,由於實現和設計了的RDO用於關係資料庫,因此RDO並沒有它自己的查詢處理程序;它依靠資料來源來處理所有的查詢,並建立結果集。資料物件本身是由ODBC驅動程式所傳回的結果集和遊標來建立的。
有時可能沒有必要將現有的DAO/Jet應用程式轉換為RDO,因為ODBCDirect將DAO通過RDO,而不是Jet。如果應用程式沒有使用DAOISAM物件及其方法(例如表格類型的Recordset物件和Seek方法)或其它的ISAM程式設計方法,那麼,透過少許改動便可將其轉換成ODBCDirect方式,所需的變更甚至比轉換成RDO還少。
下表列出了RDO2.0物件及其等價的DAO/Jet物件:
RDO對象
等價的DAO/Jet對象
RdoEngine
DBEngine
RdoError
Error
rdoEnvironment
Workspace
rdoConnection
Database
rdoTable
TableDef
未實現
Index
rdoResultset
Recordset
未實現
表類型
鍵集類型
動態集類型
靜態型別(r/w)
快照類型(r/o)
動態型別
(無)
僅向前類型
僅向前類型
(無遊標的)
(無)
rdoColumn
Field
rdoQuery
QueryDef
rdoParameter
Parameter
未實現
Relation
未實現
Group
未實現
User
遠端資料物件使用行和列的概念,而不是記錄和域的概念,後者通常為關聯式資料庫的術語。查詢以結果集的形式傳回數據,結果集可以包括零個或多個數據行,每行又可包括一個或多個列。 DAO需要使用遊標存取數據,而RDO允許創建無遊標的結果集,所需的資源大大少於遊標。
有些DAO物件、方法和屬性被設計用來支援和實現Jet的ISAM結構以及可安裝的ISAM資料庫。例如,可以使用Index物件和Seek方法來管理ISAM索引,並以索引進行定位行。因為RDO和關聯式資料庫以完全不同的方式管理索引,所以那些物件和方法都是不需要的。
透過DAO方法和屬性,DAO也支援資料庫模式的建立、修改、參考完整性(RI)以及安全性。 RDO不支援任何形式的RI、安全性或模式修改,因為伺服器系統所提供的工具和實用程式完全能夠支援這些功能。
也可以執行RDO生成表查詢,或執行動作查詢,用原始SQL語句操作建立、修改、刪除資料庫或表格。也可以執行複雜的預存程序,從而管理資料庫模式或執行維護作業,這對DAO來說是不可能的。
->