亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? delphi開發web程序常見問題.txt

?? delphi知識收集 我個人的小小收集
?? TXT
字號:
DELPHI開發Web程序常見問題 
--------------------------------------------------------------------------------
作者:不詳  來源于:不詳  發布時間:2005-2-14 3:44:55 
Web程序開發對開發工具提出了極大挑戰,面對用戶的眾多需求,許多公司推出一大堆開發平臺:開發桌面應用程序和C/S程序的,開發中間件的,開發Web服務器的。這造成程序員面對一大堆工具無從下手。 

  DELPHI和其他開發工具不同,因為它是一個開放系統,只要靈活使用一些控件,即可開發出各種類型的系統,不論N-Tie程序、多線程程序、分布計算程序(包括DCOM和CORBAR)、TCP程序、Web程序、ActiveX、中間件、推程序(Push),甚至你可以用它來寫匯編程序。 

  DELPHI將ISAPI/NSAPI/CGI/WCGI等巧妙地封裝成一個類,用戶只要在編譯時選擇編譯結果,就可以得到不同的系統。 

  在DELPHI 4中Inprise公司進一步加強了對Web程序開發的支持,可以開發出更好更強的系統。以下是開發Web應用程序中的幾個常見問題,可以供大家參考。如果沒有特別申明,則表示程序運行于DELPHI 4下。 

  如何從Web Server Application返回一幅圖像? 
  Web Server Application不僅可以生成復雜的頁面文檔,也可以根據用戶請求返回不同的圖像。當然有比較簡單的方法,根據輸入參數不同,〈img src...〉標記也指向不同的URL地址。這里我們不用這個辦法,而是利用DLL返回圖像。 

  當然要首先建立一個頁面容器(page producer),內容如下: 

  〈html〉 

  〈body〉This is a test〈BR〉〈img src=″/scripts/mydll.dll/picture″〉〈/body〉 

  〈/html〉 

  接下來我們設定對應于PathInfo的動作事件,返回圖像結果,源代碼如下: 

  (注意:單元聲明中要包含JPEG單元) 

  procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; 

   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 

  var 

   jpg align=left: TJpegImage; S: TMemoryStream; 

  begin 

     jpg align=left := TJpegImage.Create; 

     try 

       jpg align=left.LoadFromFile(′test′); 

       S := TMemoryStream.Create; 

       try 

           jpg align=left.SaveToStream(S); 

           S.Position := 0; 

           Response.ContentType := ′image/jpeg′; 

           Response.ContentStream := S; 

           // 必須在流釋放前完成 

           Response. SendResponse; 

       finally 

           S.Free;   

       end; 

     finally   

       jpg align=left.Free; 

     end; 

  end; 

  實際上用這種方法和前面提到的簡單做法相比,具有更安全和更靈活的特點。在某些地方靈活使用,以此為基礎稍加修改可以產生一般開發工具難以實現的效果。 

   

  如何在ISAPI/NSAPI動態連接庫(DLL)中使用本地數據庫驅動程序(native Access driver)? 

  這是因為DAO 3.0 或者DAO 3.5是所謂thread-safe(線程安全程序),而一個Web服務器(例如IIS)會隨用戶請求產生多個線程,同時把ISAPI對應的DLL也列為線程。這時ISAPI就會通過BDE通知DAO,告訴它不符合線程安全規定。 

  解決的方法有很多,如果你一定要訪問Access 95/97庫,那么可以通過ODBC訪問。ODBC不會經過DAO,而且也是一個線程安全程序。此外還有一些第三方的控件集,通過他們可以直接由BDE訪問Access 95/97,效率更高。 

   

  用戶訪問我Web服務器上的ISAPI DLL,可是報告:“Invalid filename"(無效的文件名),然而文件的確存在的。對了,我的數據庫在一臺Novell 服務器上。這是為什么呢? 

  你沒有設定對應于你IUSR_XXX賬戶的驅動器路徑映射(MAPING)。因為Novell不是采用FAT,所以要手工添加路徑映射。當然,可以做成開機登錄腳本。請牢記,如果你運行IIS作為Web服務器,而又涉及Novell,無論作為文件服務器或數據庫服務器,都要定義好路徑映射。 

  “Invalid configuration parameter for alias {alias_name}"(無效的別名配置),當我設置一個ODBC DSN,并通過它訪問ISAPI/NSAPI服務器時就出現這樣一個錯誤。 

  你如果要為訪問的用戶(IIS用戶)建立一個ODBC別名,那么要注意創建一個SYSTEM DSN(系統DNS),而不要創建“用戶DNS”,雖然“用戶DNS”是缺省設定。 

   

  如何取得客戶機(訪問機器)的名稱和IP地址? 

  實現這個功能用TCP控件來做非常容易。從Internet頁面上選取一個TCP控件,然后直接就可以得到你所需要的: 

  Memo1.Lines.Add(TCP1.LocalHostName); 

  Memo1.Lines.Add(TCP1.LocalIp); 

  當然,如果你不希望這樣做,還有比較復雜的辦法: 

  uses Winsock; 

  procedure TForm1.FormCreate(Sender: TObject); 

  var 

  wVersionRequested : WORD; 

  wsaData : TWSAData; 

  begin 

   {創建 WinSock} 

   wVersionRequested := MAKEWORD(1, 1); 

   WSAStartup(wVersionRequested, wsaData); 

  end; 

   

  procedure TForm1.Button1Click(Sender: TObject); 

  var p : PHostEnt; s : array[0..128] of char; p2 : pchar; 

  begin 

   {得到計算機名稱} 

   GetHostName(@s,128); 

   p:=GetHostByName(@s); 

   Memo1.Lines.Add(p^.h_Name); 

   {得到機器IP地址} 

   p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^); 

   Memo1.Lines.Add(p2); 

  end; 

   

  procedure TForm1.FormDestroy(Sender: TObject); 

  begin 

   {釋放 WinSock} 

   WSACleanup; 

  end; 

  這是一個調用了WINSOCK的獨立單元,你可以把它直接嵌入到你的程序中去。 

   

  在DELPHI 3中為何不能創建真正的多線程DLL? 

  雖然DELPHI 3中的ISAPI DLL向導已經為創建多線程DLL生成了大量代碼,可是還是有一個嚴重的缺陷:沒有申明本應用程序是一個多線程的程序。所以需要你添加一句話: 

  IsMultiThread := TRUE; 

  把這句話放在DPR程序begin-end塊的開始處,使之成為第一句。 

   

  如何得知現在是否和Internet連接? 

  最簡單的辦法是用一個TCP元件得到自己當前的IP,通過判斷IP得知是否連入Internet。例如: 

   if TCP1.LocalIp = '0.0.0.0' then 

    ShowMessage('目前沒有連入Internet!'); 

  需要注意的是:因為Internet和Intranet沒本質區別,所以一般不能判定是和Internet連接還是僅僅連入Intranet。當然。你也可以再加一個PING元件,去PING一個比較穩定、速度比較快的站點,如果連通則表明已經接入Internet。不過這種辦法通用性不好。 


  如何打印一個Web頁面? 

  可以選用HTML控件的AutoPrint方法。例如: 

  uses Printers; 

  procedure TForm1.Button1Click(Sender: TObject); 

  var 

   OldCur: TCursor; 

  begin 

  OldCur := Screen.Cursor;   

  with Printer do begin 

    BeginDoc;   

    HTML1.AutoPrint(handle);   

    Title := HTML1.URL;   

    EndDoc; 

  end; 

  Screen.Cursor := OldCur; 

  end; 

  此外還可以利用其PrintPage方法。不過我推薦你采用AutoPrint,因為這樣控制更靈活,可以過濾一些你不希望打印的內容。 

  結 語 

  最后我還要向你推薦幾套DELPHI編寫Web程序的增強控件集,它們是: 

  1)CGI Expert 4 由Lars German公司出品,編寫 shell-CGI、 win-CGI、 ISAPI和NSAPI程序特別方便。 

  2)NetMaster的Internet控件集。DELPHI 4中的Internet控件集就是它們的杰作,和DELPHI結合得非常好。你可以去下載它們的最新版,功能更強大,而且對DELPHI用戶是免費的。 

  3)Dart Communications出品的PowerTCP的確非常強大,如果編寫專業級TCP應用程序必不可少。有很多功能實際是由DLL提供的。 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲裸体xxx| 中文字幕一区在线| 在线观看av不卡| 91国偷自产一区二区三区观看 | 天天操天天干天天综合网| 国产精品女人毛片| 中文字幕一区视频| 亚洲精品美国一| 午夜一区二区三区视频| 亚洲一区二区三区四区五区黄 | 久久精工是国产品牌吗| 日韩精品高清不卡| 久久99国产乱子伦精品免费| 国产一区欧美一区| 国产一区二区久久| 国产一区二区h| 精品中文字幕一区二区小辣椒| 热久久免费视频| 国产在线不卡一区| 北条麻妃国产九九精品视频| 91免费小视频| 在线播放亚洲一区| 久久免费美女视频| 亚洲国产精品成人综合| 亚洲主播在线播放| 久久国产精品99精品国产 | 欧美伦理影视网| 欧美mv和日韩mv的网站| 久久免费偷拍视频| 中文字幕一区av| 午夜欧美一区二区三区在线播放 | 在线电影欧美成精品| 欧美成人激情免费网| 国产精品少妇自拍| 日韩精品一级中文字幕精品视频免费观看 | 一区二区三区在线不卡| 亚欧色一区w666天堂| 国产制服丝袜一区| 欧美午夜一区二区三区免费大片| 日韩亚洲欧美综合| 中文字幕亚洲在| 久久精品99国产精品日本| 99这里只有久久精品视频| 91精品在线免费| 综合电影一区二区三区 | 最新热久久免费视频| 偷拍亚洲欧洲综合| av综合在线播放| 日韩欧美在线网站| 一区二区三区在线免费观看| 国产一区二区久久| 欧美日产国产精品| 日韩毛片一二三区| 国产乱人伦精品一区二区在线观看| 欧美视频在线观看一区| 中文字幕国产一区| 狠狠色狠狠色综合系列| 欧美三区在线观看| 亚洲视频每日更新| 成人精品鲁一区一区二区| 精品少妇一区二区三区视频免付费 | ...av二区三区久久精品| 精品一区二区免费视频| 欧美精品 国产精品| 亚洲精品视频一区| 不卡的av中国片| 久久女同性恋中文字幕| 久久99久久久久久久久久久| 在线不卡一区二区| 亚洲bt欧美bt精品777| 欧美日韩一区二区三区免费看| 成人欧美一区二区三区黑人麻豆 | 国模套图日韩精品一区二区| 7777女厕盗摄久久久| 亚洲国产日韩精品| 欧美综合在线视频| 亚洲一区二区三区在线播放| 在线观看av不卡| 亚洲国产成人av网| 欧美午夜精品久久久久久超碰 | 精品99一区二区| 老色鬼精品视频在线观看播放| 91超碰这里只有精品国产| 免费观看在线综合色| 精品国产免费一区二区三区四区| 麻豆国产欧美日韩综合精品二区| 日韩三级伦理片妻子的秘密按摩| 毛片av一区二区| 久久久99精品久久| 国产69精品久久777的优势| 日本一区二区不卡视频| 色噜噜狠狠一区二区三区果冻| 亚洲成人免费视| 日韩美女视频在线| 国产精品一区二区男女羞羞无遮挡| 久久精品夜夜夜夜久久| 99国产精品视频免费观看| 一区二区高清视频在线观看| 在线不卡免费欧美| 丁香五精品蜜臀久久久久99网站| 国产精品―色哟哟| 欧美色图一区二区三区| 久久精品国产**网站演员| 国产精品嫩草久久久久| 欧美日韩一区二区三区四区| 国产综合色精品一区二区三区| 中文字幕欧美日韩一区| 欧美男女性生活在线直播观看| 激情成人综合网| 亚洲九九爱视频| 日韩一区二区三免费高清| 成人精品视频.| 免费在线一区观看| 亚洲人成人一区二区在线观看| 欧美一区二区在线看| 94色蜜桃网一区二区三区| 青青草原综合久久大伊人精品| 一区二区三区日韩在线观看| 久久女同性恋中文字幕| 欧美日韩黄视频| av激情成人网| 久久99国产精品麻豆| 亚洲香肠在线观看| 日本一区二区视频在线| 日韩无一区二区| 欧美亚州韩日在线看免费版国语版| 韩国精品主播一区二区在线观看 | 国产日本欧美一区二区| 欧美精选在线播放| 99re视频精品| 风流少妇一区二区| 免费成人在线观看视频| 亚洲另类在线制服丝袜| 国产欧美精品一区aⅴ影院| 日韩一区二区三免费高清| 欧美亚日韩国产aⅴ精品中极品| 成人精品小蝌蚪| 国产成人在线色| 国产乱子伦一区二区三区国色天香| 亚洲.国产.中文慕字在线| 一二三四区精品视频| 中文字幕一区在线| 中文字幕中文字幕一区二区 | proumb性欧美在线观看| 国产不卡免费视频| 国产一区免费电影| 国产乱妇无码大片在线观看| 波多野结衣亚洲一区| 91亚洲男人天堂| 成人av网址在线观看| 成人免费三级在线| 成人精品视频.| 成人不卡免费av| 99re免费视频精品全部| 色香蕉久久蜜桃| 在线观看日韩av先锋影音电影院| 99久久精品免费看| 91福利在线观看| 精品视频在线看| 欧美一级生活片| 26uuu久久综合| 久久精品亚洲乱码伦伦中文| 久久这里只有精品视频网| 精品国产91久久久久久久妲己| 精品久久久影院| 国产肉丝袜一区二区| 中文字幕欧美区| 一片黄亚洲嫩模| 石原莉奈在线亚洲三区| 精品影视av免费| 成人午夜电影网站| 欧洲激情一区二区| 制服丝袜亚洲网站| 久久这里只有精品6| 国产欧美日韩亚州综合| 亚洲裸体xxx| 免费看欧美美女黄的网站| 精彩视频一区二区三区| 成人的网站免费观看| 欧美色老头old∨ideo| 欧美成人a在线| 亚洲欧美视频在线观看视频| 亚洲777理论| 国产v日产∨综合v精品视频| 欧美中文字幕一二三区视频| 日韩一区二区在线观看| 欧美高清一级片在线观看| 亚洲一区二区三区精品在线| 麻豆视频一区二区| 91尤物视频在线观看| 777精品伊人久久久久大香线蕉| 国产精品无圣光一区二区| 亚洲超碰精品一区二区| 懂色av一区二区三区免费观看 | 欧美精品在线观看一区二区| 国产蜜臀av在线一区二区三区| 亚洲国产精品久久人人爱蜜臀| 国产高清无密码一区二区三区| 欧美日韩在线三区| 亚洲欧洲日产国码二区|