2012-01-24 343 views
3

我正在通过sql在Advantage数据库服务器中搜索可能性,将一个字节流放到一个表中,因此称为blob文件。当我建立一个完整的数据库,我这样做是这样的:使用sql语句将sql语句插入到数据库中将blob文件插入到

TBlobField(BaseTable.FieldByName('BlobData')).LoadFromStream(BinaryStream); 

现在我想添加一个条目到我的数据库,其中一个字段的“BlobData”。 我开始这样的:

FADSQuery.SQL.Add('Insert Into '+DBName'+'(BlobData)'); 
TBlobField(FADSQuery.ParamByName('BlobData')).LoadFromStream(BinaryStream); 

但是,编译器告诉我,它找不到BlobData领域:( 是它几乎有权那样做我不喜欢把里面插入到语句?通过文件名的整个文件

预先感谢您

+2

“先进数据基本服务器“或”Advantage数据库服务器“? –

+3

'“但编译器告诉我它找不到BlobData”'。请不要为我们“翻译”错误信息。始终提供您收到的* exact *错误消息。即使错误信息不能告诉你,它可能会告诉别人。 –

+0

因此,它是Advantage数据库服务器。 –

回答

13

尝试类似的东西:

FADSQuery.SQL.Add('Insert Into '+DBName+'(BlobData) values (:BlobData)'); 
FADSQuery.ParamByName('BlobData').LoadFromStream(BinaryStream, ftBlob); 
+4

+1,用于为命名参数建议语法并将错误地转换为'TBlobField'。 –

+0

非常感谢您的快速回答。这对我帮助很大。并通过包括blobtype工作:FADSQuery.ParamByName('BlobData')。LoadFromStream(BinaryStream,ftBlob); –

+1

@AndréDziurla:如果它解决了问题,将标记为“Accepted”的答案会很好。 –