hur.cn - 华软网

 热门搜索

N麻烦,实在搞不懂在DW中如何用DB OLE来显示图片,请高手指点一二,谢谢。

  作者:未知    来源:网络    更新时间:2019/1/5
DB OLE不仅能够直接显示图片,还能够显示WORD/EXCEL/CAD等文档,不需要额外的代码就能够运用。
但小弟搞了几天,实在搞陌生在DW中如何用DB OLE来显示图片,请高手指点一二,谢谢。
以下图片是设置的参数,我搞不清楚错在那里了,请高手们帮助。


SELECTBOLB这类方式太慢了,我计划不再采取。


------华软网友回答------
图片地址:http://www.richta.com/photos/error.jpg
------华软网友回复------
PB帮助文档里有啊。下面是PB8的帮助文档原文:

Adding a blob column to the DataWindow object
This procedure describes how to add a blob column to a DataWindow object.

 To add a blob column to a new DataWindow object:

Create a new DataWindow object.


Specify the table containing the blob as the data source for the DataWindow object. 

Be sure to include the key column in the data source. You cannot include the blob column in the data source; if you try, a message tells you that its data type requires the use of an embedded SQL statement. You will add the blob column later in the DataWindow painter workspace. (If you use Quick Select, the blob column is not listed in the dialog box.)


Select Insert>Control>OLE Database Blob and click where you want the blob column in the Design view.

The Database Binary/Text Large Object dialog box displays:






Setting properties for the blob column
This procedure describes the properties you need to set for the blob column.

 To set properties for a blob column:

(Optional) Enter the client class in the Client Class box. The default is DataWindow.

This value is used in some OLE server applications to build the title that displays at the top of the server window.


(Optional) Enter the client name in the Client Name box. The default is Untitled.

This value is used in some OLE server applications to build the title that displays in the title bar of the server window.


In the Table box, select the database table that contains the blob database column you want to place in the DataWindow object.

The names of the columns in the selected table display in the Large Binary/Text Columns listbox.


In the Large Binary/Text Columns box, select the column that contains the blob data type from the list.


If necessary, change the default key clause in the Key Clause box.

PowerBuilder uses the key clause to build the WHERE clause of the SELECT statement used to retrieve and update the blob column in the database. It can be any valid WHERE clause.

Use colon variables to specify DataWindow columns. For example, if you enter this key clause:
id = :id


the WHERE clause will be:
WHERE id = :id



Identify the OLE server application by doing one of the following: 
If you always want to open the same file in the OLE server application, enter the name of the file in the File Template box.
For example, to specify a particular Microsoft Word document, enter the name of the DOC file. If the file is not on the current path, enter the fully qualified name.

 Use the Browse button to find the file If you do not know the name of the file you want to use, click the Browse button to display a list of available files. Select the file you want from the resulting window. 

If you do not want to open the same file each time, select an OLE server application from the OLE Class: Description dropdown listbox.
 When the server doesn't match the OLE blob data If you specify a server that doesn't match the OLE blob object or if your database contains objects belonging to different servers, the OLE mechanism can usually handle the situation. It looks for the server specified in the object and starts it instead of the server you specified. 




Enter text or an expression that evaluates to a string in the Client Name Expression box.

The server may use this expression in the title of the window in the OLE server application. The expression you specify can identify the current row in the DataWindow object.


 Use an expression to make sure the name is unique Use an expression to make sure the name is unique. For example, you might enter the following expression to identify a document (where ID is the integer key column):

"Document " + String(id)

Click OK.

PowerBuilder closes the dialog box. The blob column is represented by a box labeled Blob in the Design view.


Save the DataWindow object.
------华软网友回复------
有没有人翻译一下
------华软网友回复------
key clause:

phosid = :phosid

file template空着如何?



------华软网友回复------
要在数据窗口中创建一个OLE列,首先要有一个包括Blob数据类型的表,其数据类型在不同的DBMS中有一定的差异:在SQL Anywhere 中是Long binary;在SQL Server中是Image.
  其次,在选择数据源时,PB不允许指定Blob列,要在以后才能加入:在进入数据窗口可视设计时,找到菜单Objects下的OLE Database Blob(PB 6.5中),选中它,在需要放置Blob对象的地方单击,接着就会出现Blob对象的属性页,设置好以后就能够用了.
------华软网友回复------
修改后还得用

updateblob更新,而不能在数据窗口直接操作
------华软网友回复------
TO楼上的兄弟,我知道如何选择出DB OLE来,然则我就是搞陌生里面的属性如何设置,请麻烦您看一下图好吗?谢谢。
------华软网友回复------
key clause:

phosid = :phosid //我这样设置过,

file template//空着了也不行。
------华软网友回复------
我怀疑是Client Name Epression没有设置对。
------华软网友回复------
我也就不多说了, 给你个例子看看
http://blog.csdn.net/vvip/archive/2004/07/21/43827.aspx
------华软网友回复------
不知道是我设置的原因照旧另外原因,我是吃了DB OLE控件的亏了。原先图片巨细就100K结果数据库保存后的巨细酿成了2M多造成读取数据速度特别慢。我预计用DB OLE控件保存图片后,把图片工具软件也一起存到数据库中去了。我现在都在想措施把以前用DBOLE控件存的图片改成用另外方式存取图片。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。