userTemplate: array[0..512] of char;.....
with dm.cmd.Parameters.AddParameter do
begin
dataType := ftBytes;
direction := pdInput;
value := userTemp; //编译错误
end;
.....求救大侠 如何将char array 转换为variant类型???
with dm.cmd.Parameters.AddParameter do
begin
dataType := ftBytes;
direction := pdInput;
value := userTemp; //编译错误
end;
.....求救大侠 如何将char array 转换为variant类型???
解决方案 »
- DELPHI的COM+不可以直接调用WEBSERVICE吗?
- tstrings
- 关于数据库查询和插入的几个小问题,急等用啊!!!!!!!!
- clientdataset不能操作blob字段
- 我哭了,老师要我做的程序完不成..
- 请问这是什么意思? 在线等.谢谢.
- 愿爱我的人和我爱的人和我爱过的人和爱过我的人平安快乐
- 在线守候给分,有谁知道那里可以下载devexpress for D5这个控件,不要是www.51delphi.com,里面目录结构太复杂,我找半天都没有找到,
- QRDBText1Print事件为什么没有执行?
- 怎样在dbgrid里选一个字段使其值自动弹到edit里?
- 【动态数组→流→数据库】求助
- 图像校正中遇到的问题,请大家帮忙
st:string;.....
st:=userTemp//转换成string
with dm.cmd.Parameters.AddParameter do
begin
dataType := ftBytes;
direction := pdInput;
value := st; //编译错误,Pchar类型等于是数组类型,不能直接赋值给Variant
end;
.....
st:string;.....
st:=userTemp;//转换成string,刚才掉了个分号。
with dm.cmd.Parameters.AddParameter do
begin
dataType := ftBytes;
direction := pdInput;
value := st; //编译错误,Pchar类型等于是数组类型,不能直接赋值给Variant
end;
.....
但是俺那个array存的是2进制的数据,所以string对象是''空值的~~还有其他办法没有啊
unit Main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, StdCtrls, DB;type
ArrayVar = array of Variant;
TForm1 = class(TForm)
ADOCommand1: TADOCommand;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FUserTemplate: array[0..512] of char;
function GetArrayVar(AArrayChar: array of Char): ArrayVar;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
ss: TParameter;
begin
ss := ADOCommand1.Parameters.AddParameter;
ss.DataType := ftBytes;
ss.Direction := pdInput;
ss.Value := VarArrayOf(GetArrayVar(FUserTemplate));
end;function TForm1.GetArrayVar(AArrayChar: array of Char): ArrayVar;
beginend;end.
function TForm1.GetArrayVar(AArrayChar: array of Char): ArrayVar;
beginend;楼上那位帮写下这个函数好码?
P : Pointer;
len : Integer;
begin
len := length(str);
oleVar := varArrayCreate([0, len - 1], varByte);
if len <= 0 then
begin
Exit;
end;
P := VarArrayLock(oleVar);
Move(str[1], p^, len);
VarArrayUnlock(oleVar);
end;
就是如何将OleVariant类型转换味普通的类型,比如说array[0..512] of byte这类