首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过Delphi ADO从sql server的文本字段中检索8个以上的字节。

无法通过Delphi ADO从sql server的文本字段中检索8个以上的字节。
EN

Stack Overflow用户
提问于 2010-06-19 04:37:01
回答 1查看 274关注 0票数 0

Delphi 7 SQLSERVER 2000

我遇到了一个无法重新编译的遗留应用程序的问题,因为当我这样做时,我失去了从文本字段中检索文档并将其写入磁盘的能力,我只获得了前8个字节。我有一个更大的应用程序,但一个非常简单的应用程序正在重现这个问题。

代码如下。用于连接的连接字符串。

代码语言:javascript
运行
复制
Provider=SQLOLEDB.1;Password=toflidium;Persist Security Info=True;User ID=sa;Initial Catalog=DocManager;Data Source=DELPHIBOX;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DELPHIBOX;Use Encryption for Data=False;Tag with column collation when possible=False

测试用例的完整代码

代码语言:javascript
运行
复制
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ADODB, DB, StdCtrls, DBCtrls;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Edit1: TEdit;
Button1: TButton;
DBText1: TDBText;
DBText2: TDBText;
DBText3: TDBText;
DataSource1: TDataSource;
ADOTable1: TADOTable;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
ADOQuery1DocumentDataID: TAutoIncField;
ADOQuery1VersionID: TIntegerField;
ADOQuery1DocName: TStringField;
ADOQuery1ActualDoc: TMemoField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  sql : string;
begin

  sql := 'Select Top 1 * from tblDocumentData where VersionID = ' + ADOTable1.FieldByName('VersionID').asstring ;
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := sql;

  ADOQuery1.Open;   

  TBlobField(ADOQuery1.FieldByName('ActualDoc')).SaveToFile('c:\temp\temp\myfile' 
                    +  ADOTable1.FieldByName('VersionID').asstring + '.doc');

end;

end.

这是写入dis的整个文件。

代码语言:javascript
运行
复制
ÐÏࡱá

我应该收到一个完整的20 - 50K的word文档。

我重建了一台完整的机器,看看我的dev机器上是否有什么地方被设置错了,我在重建时也遇到了同样的问题。如果我只是构建并尝试实时数据库,我也有同样的问题,但是旧版本(现在大约4年了)工作得很好。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-19 05:02:30

我找到问题了。我必须在上一次更新之后移动了机器,并且没有安装Delphi 7的更新1。

安装了更新并修复了问题-在我寻找其他问题之前应该是最新的。

希望这个答案能对其他人有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3072900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档