国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在VB中實現文件上傳

2019-11-18 17:27:41
字體:
來源:轉載
供稿:網友
VisualBasic作為一個集應用程序開發、測試、查錯功能于一體的集成式開發環境,越來越受到程序員的青睞。筆者在開發某數據庫維護系統的過程中,選擇了VB5.0作為開發平臺,Unix作為服務器端操作系統,Informix作為服務器數據庫。
  問題的出現
  在開發該維護系統的過程中,注意到Informix數據庫的字段類型CLOB填入數據時需要函數FILETOCLOB("FILENAME","SERVER"),其中的"FILENAME"需要指出文件路徑和文件名稱。然而,在維護過程中此文件是在客戶端執行的,這樣就要求即時將文件傳輸到服務器端。
  解決辦法
  1.FTP傳輸工具
  我們首先使用FTP傳輸工具,用VB5.0中SHELL命令調用DOS批處理文件來實現傳輸的需要。
  Shell調用格式:
  Shell(pathname[,windowstyle])
  例子:Shell("c:/windows/upload.bat")
  批處理文件upload.bat的內容:
  c:/windows/ftphostname
  username
  passWord
  sendc:/zrh/upload.txtupload.txt
  bye
  該命令實現了文件"upload.txt"的傳輸要求。在使用完畢之后,再調用命令把該文件刪除。
  例子:Shell("c:/windows/del_up.bat")
  批處理文件del_up.bat的內容:
  c:/windows/ftphostname
  username
  password
  deleupload.txt
  bye
  這樣,文件"upload.txt"被刪除。
  但是,另一個問題出現了。由于Shell函數的運行機制是與其它程序同步執行,也就是說,當調用Shell函數的子程序還沒有執行完畢之前,Shell函數后面的語句已經執行。在大批量添加數據的過程中,就會出現某個記錄的文件還沒有傳到,而下一個插入語句(Insert)已經開始調用。這樣,ODBC調用就會出現錯誤。
  2.INET控件
  InternetTransfer控件提供了Internet上最常使用的兩種協議:HTTP和FTP。使用HTTP協議可以連接到WWW服務器上來下載文件;使用FTP協議則可以登錄到FTP服務器。一般的FTP命令,例如CD、GET都可以通過Execute方法實現。
  下面是一個設置INET控件屬性的例子。
  inet1.URL=ftp://username:password@hostname/document
  inet1.  right1=Inet1.StillExecuting
  DoWhileright1
  right1=Inet1.StillExecuting
  DoEvents
  Loop
  將上載的文件刪除是為了避免占用服務器端磁盤空間。
  *S利用StateChanged事件提示信息
  服務器在執行inet1.execute的同時也激活了Inet1_StateChanged事件,進程可以根據捕獲到的狀態進行動作。
  object_StateChanged(ByValStateAsInteger)
  State:整數類型Integer
  下面是狀態的說明。
  常數值   描述icNone
  0     未報告狀態icHostResolvin
Ghost
  1     控件正在尋找指定主機的  vtData=Inet1.GetChunk(1024,icString)
  IfLen(vtData)=0Then
   bDone=True
  EndIf
  Loop
  txtData.Text=strData
  EndSelect
  EndSub->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海宁市| 望奎县| 阳西县| 青龙| 漳平市| 山东| 封丘县| 道孚县| 柳河县| 会泽县| 盐山县| 新乐市| 灵宝市| 保山市| 包头市| 高雄县| 修文县| 公安县| 轮台县| 金坛市| 元谋县| 连城县| 沂源县| 徐水县| 桂东县| 浮梁县| 浏阳市| 汉阴县| 临潭县| 陕西省| 左贡县| 威海市| 甘南县| 芜湖市| 舒城县| 静海县| 台前县| 洪江市| 正阳县| 鹤庆县| 应用必备|