亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

DELPHI開發Web程序常見問題

2019-11-18 18:44:14
字體:
來源:轉載
供稿:網友
引子
  Web程序開發對開發工具提出了極大挑戰,面對用戶的眾多需求,許多公司推出一大堆開發平臺:開發桌面應用程序和C/S程序的,開發中間件的,開發Web服務器的。這造成程序員面對一大堆工具無從下手。

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

  DELPHI將ISAPI/NSAPI/CGI/WCGI等巧妙地封裝成一個類,用戶只要在編譯時選擇編譯結果,就可以得到不同的系統。
  在DELPHI4中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的動作事件,返回圖像結果,源代碼如下:
 ?。ㄗ⒁猓簡卧暶髦幸琂PEG單元)

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  var
   Jpg: TJpegImage;
S: TMemoryStream;
  begin
   Jpg := TJpegImage.Create;
   try
   Jpg.LoadFromFile(′test′);
   S := TMemoryStream.Create;
   try
   Jpg.SaveToStream(S);
   S.Position := 0;
   Response.ContentType := ′image/jpeg′;
   Response.ContentStream := S;

   // 必須在流釋放前完成
   Response. SendResponse;
   finally
   S.Free;
    end;
  finally
   Jpg.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?
  雖然DELPHI3中的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函數參考手冊

下一篇:Delphi代碼的標準風格

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美二区乱c黑人| 日本欧美在线视频| 亚洲欧美视频在线| 亚洲风情亚aⅴ在线发布| 亚洲综合在线中文字幕| 久久久久久国产| 欧美在线视频免费观看| 国产精品小说在线| 日韩欧美国产高清91| 亚洲aⅴ日韩av电影在线观看| 日韩禁在线播放| 欧美日韩国产色| 在线视频日本亚洲性| 日韩中文av在线| 国产精品入口日韩视频大尺度| 欧美最猛性xxxxx(亚洲精品)| 亚洲成av人片在线观看香蕉| 一区二区欧美日韩视频| 欧美一级片久久久久久久| 欧美激情小视频| 日韩欧美一区二区三区| 国产丝袜一区二区| 国产98色在线| 久久不射热爱视频精品| 欧美成人四级hd版| 国产一区二中文字幕在线看| 日韩成人高清在线| 中文日韩在线视频| 欧美精品18videos性欧美| 欧美电影在线观看| 亚洲精选一区二区| 欧美xxxx做受欧美.88| 欧美在线视频在线播放完整版免费观看| 久久久久久久久中文字幕| 精品视频久久久久久| www.99久久热国产日韩欧美.com| 成人欧美一区二区三区在线| 亚洲91精品在线| 在线播放日韩欧美| 国产日韩欧美夫妻视频在线观看| 亚洲国产精品免费| 国产精品网址在线| 一本一本久久a久久精品综合小说| 97高清免费视频| 久久人人爽人人爽爽久久| 伊人激情综合网| 欧美国产日韩一区二区在线观看| 色综合久久88色综合天天看泰| 精品国产91久久久| 国产欧美日韩专区发布| 久久夜精品va视频免费观看| 7m精品福利视频导航| 亚洲欧美精品中文字幕在线| 欧美人在线观看| 欧美日韩国产专区| 麻豆乱码国产一区二区三区| 久久中文久久字幕| 欧美国产日韩一区二区在线观看| 久久99视频精品| 亚洲国产精品久久久久久| 国产精品美女网站| 久久精品国产欧美亚洲人人爽| 日韩欧美国产免费播放| 亚洲欧美制服丝袜| 狠狠久久亚洲欧美专区| 国产美女精品视频| 久久视频这里只有精品| 欧洲永久精品大片ww免费漫画| 国产精品自拍小视频| 中文字幕日韩欧美精品在线观看| 久久网福利资源网站| 久久精品免费播放| 欧美又大粗又爽又黄大片视频| 日韩欧美成人网| 日韩精品视频免费在线观看| 日韩电影中文字幕| 日韩视频精品在线| 久久久天堂国产精品女人| 最近2019中文字幕在线高清| 久久最新资源网| 国内精品久久影院| 日韩av在线免费看| 欧美一区二区三区图| 国产这里只有精品| 亚洲天堂第二页| 日韩av观看网址| 久久久人成影片一区二区三区| 久久综合伊人77777| 亚洲美腿欧美激情另类| 欧美日韩亚洲网| 亚洲国产成人精品久久久国产成人一区| 中文字幕亚洲欧美一区二区三区| 中日韩午夜理伦电影免费| 日韩av网站导航| 最近中文字幕日韩精品| 亚洲伊人成综合成人网| 久久久久日韩精品久久久男男| 色综合91久久精品中文字幕| 成人情趣片在线观看免费| 日韩av网站在线| 日韩成人中文字幕在线观看| 国产精品国产亚洲伊人久久| 亚洲人成绝费网站色www| 亚洲国产高清自拍| 亚洲欧美另类人妖| 亚洲国产精品成人精品| 成人福利免费观看| 亚洲a中文字幕| 91精品视频在线看| 亚洲人a成www在线影院| 国产欧美亚洲视频| 亚洲欧洲日产国码av系列天堂| 亚洲伦理中文字幕| 日韩av123| 2019亚洲日韩新视频| 影音先锋欧美在线资源| 日韩精品极品在线观看播放免费视频| 亚洲人永久免费| 成人午夜高潮视频| 久久久精品美女| 欧美国产视频一区二区| 国产va免费精品高清在线观看| 精品香蕉在线观看视频一| 欧美日韩第一页| 少妇高潮久久77777| 尤物99国产成人精品视频| www.亚洲免费视频| 亚洲小视频在线| 久久人人爽人人爽人人片av高请| 久久久这里只有精品视频| 亚洲精品av在线播放| 国产主播在线一区| 精品久久久中文| 亚洲一区二区少妇| 国产精品久久久久久久9999| 国产精品色婷婷视频| 日韩成人激情视频| 日韩电影免费在线观看中文字幕| 国产日韩欧美综合| 久久久久亚洲精品国产| 日韩成人高清在线| 日韩精品视频免费| 日本高清不卡的在线| 88xx成人精品| 久久久亚洲国产| 亚洲成人久久电影| 91免费电影网站| 91在线观看免费网站| 国产成人在线一区| 亚洲人成网站777色婷婷| 欧美激情第99页| 日韩高清电影好看的电视剧电影| 高清一区二区三区四区五区| 欧美精品国产精品日韩精品| 精品福利在线观看| 97色在线观看免费视频| 亚洲专区国产精品| 国产成人综合一区二区三区| 国产精品成人久久久久| 伊人久久男人天堂| 精品亚洲一区二区三区在线播放| 91久久精品久久国产性色也91| 中文字幕视频在线免费欧美日韩综合在线看| 2025国产精品视频|