SQL SERVER似乎是可以的。
其他的怎么办?
要是这个表到了海量,DELPHI却是怎么个解决呢?
其他的怎么办?
要是这个表到了海量,DELPHI却是怎么个解决呢?
解决方案 »
- CoolTrayIcon:如何彻底隐藏任务栏图标?
- 查询
- 数据库是动态连接好,还是静态连接好?
- 怎样知道两个日期之间差的天数
- 如何修改文件名??在线等待
- Win2000+Delphi6+ExpressGrid4写的程序在Win200和XP下都能正常运行,但在98下一运行就非法操作?
- Delphi中语句的问题
- DELPHI高字节与低字节的运算
- 看不懂!
- 如何用DELPHI控制excel的格式(比如第一列的宽度,第五行的高度),以及如何在WORD中生成表格,其中填入数据库的数据.我不想调用应用程序后,手工修改.希望能用DELPHI程序直接控制.该如何办?
- 公司不超过五条枪的请进来报到,交个朋友。
- 如何清除ie中输入框的已输入信息
例子.
测试环境
Server : Winnt4.0,SQL Server 7.0
Client : Win2000(pro),Delphi5.0//测试用表
CREATE TABLE [dbo].[Image_test] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[image_] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
//\
//程序 delphi5.0编译,运行成功
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ADODB;type
TForm1 = class(TForm)
Button1: TButton;
adoComm: TADOCommand;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}function _strtohex_sql(const s:string):string;
var
iCount:integer;
Value,CH,CL:Byte;
PS,P:Pointer;
begin
SetLength(Result,2 * Length(s) + 2);
Result[1]:='0';Result[2]:='X';
P:=@Result[3];
PS:=@S[1];
for iCount := 1 to Length(s) do
begin
Value := Byte(PS^);
CH:=(Value shr 4) and $0F;
CL:=Value and $0F;
if CL < $0A then CL := CL + $30 else CL := CL + $37;
if CH < $0A then CH := CH + $30 else CH := CH + $37;
Byte(P^):=Ch;
P:=Pointer(Integer(P)+1);
Byte(P^):=CL;
P:=Pointer(Integer(P)+1);
PS:=Pointer(Integer(PS)+1);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
const
sqlInsert ='Insert Image_test (Image_) Values(%s)';
var
s:string;
MS:TMemoryStream;
begin
MS := TMemoryStream.Create();
MS.LoadFromFile('C:\安装程序.bmp'); //FileSize = 308,280 bytes
SetLength(S,MS.Size);
Move(MS.Memory^,Pointer(S)^,MS.Size);
MS.Free();
S := _strtohex_sql(S);
S := format(sqlInsert,[S]);
adoComm.CommandText := S;
adoComm.Execute();
end;end.