Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПроблемка, посоветуйте плиз (двоичные данные) Найти похожие ветки
← →
неважно (2003-10-22 17:23) [0]В общем нужно мне хранить в МС СКЛ данные полученные с модема, т.е. бинарные. в принципе 500 байт хватит.
я сделал в таблице поле varbinary(500). Как понимаю надо работать с этими полями как Blob ? Пробую по разному, не получается, сейчас останавился на :
передаю в хранимую процедуру
with ADOStoredProc do
Begin
ProcedureName:="PR_INSJOB";
Parameters.Clear;
Parameters.CreateParameter("BUF",ftBlob,pdInput,500,null);
S:=TMemoryStream.Create;
S.Clear;
S.SetSize(len);
S.Write(BUF,len);
// Parameters.ParamByName("BUF").LoadFromStream(S,ftBlob);
Parameters.ParamByName("BUF").LoadFromFile("debug.txt",ftBlob);
S.SaveToFile("debug.txt");
Parameters.CreateParameter("LENBUF",ftInteger,pdInput,100,null);
Parameters.ParamValues["LENBUF"]:=len;
Prepared:=true;
ExecProc;
У меня в результате в таблицу пишется только 1 байт, хотя в файл пишется весь буфер :(
2) Как потом считать ?
пробую через TBlobField ошибку выдаёт.
Кстати работаю через АДО.
Подскажите плиз как лучше сделать.
← →
Митяй (2003-10-22 17:32) [1]"Котёнка с таким именем, во дворе ждут одни неприятности."
Г-ну Неважно.
С уважением, Митяй!
← →
ZrenBy (2003-10-22 17:36) [2]Попробуй так
var V:Variant;
V := VarArrayCreate([0,499],varByte);
ADO.Parameters.CreateParameter("@V",ftBytes,pdInput,500, V);
Во всяком случае я с binary(8) именно так работаю
← →
ZrenBy (2003-10-22 17:37) [3]Попробуй так
var V:Variant;
V := VarArrayCreate([0,499],varByte);
ADO.Parameters.CreateParameter("@V",ftBytes,pdInput,500, V);
Во всяком случае я с binary(8) именно так работаю
← →
оченьважно (2003-10-22 17:37) [4]Удалено модератором
Примечание: А ты тут причем?
← →
оченьважно (2003-10-22 17:45) [5]Удалено модератором
Примечание: А ты тут причем?
← →
оченьважно (2003-10-22 19:08) [6]Удалено модератором
Примечание: А ты тут причем?
← →
ZrenBy (2003-10-23 09:40) [7]
var wS : WideString;
V,V2 : Variant;
i : Integer;
S : String;
begin
V := VarArrayCreate([0,499],varByte);
for i := 0 to 499 do V[i] := i mod 255;
S := "0x";
for i := 0 to 499 do S := S+ IntToHex(V[i],2);
wS := "insert into TBL_B (ID,B500)values(1,"+S+")";
ADOCommand1.CommandText := wS;
ADOCommand1.Execute;
V2 := VarArrayCreate([0,25],varByte);
for i := 0 to 25 do V2[i] := i mod 255;
S := "0x";
for i := 0 to 25 do S := S+ IntToHex(V2[i],2);
wS := "insert into TBL_B (ID,B500)values(2,"+S+")";
ADOCommand1.CommandText := wS;
ADOCommand1.Execute;
end;
procedure TForm1.Button3Click(Sender: TObject);
var V:Variant; S:String; i:Integer;
begin
ADODataSet1.CommandText := "select * from TBL_B where ID=1";
ADODataSet1.Open;
V := ADODataSet1.Fields[1].Value;
ADODataSet1.Close;
S := "0x";
for i := 0 to (VarArrayHighBound(V,1)) do S := S+ IntToHex(V[i],2);
Memo1.Lines.Text := S;
ADODataSet1.CommandText := "select * from TBL_B where ID=2";
ADODataSet1.Open;
V := ADODataSet1.Fields[1].Value;
ADODataSet1.Close;
S := "0x";
for i := 0 to (VarArrayHighBound(V,1)) do S := S+ IntToHex(V[i],2);
Memo2.Lines.Text := S;
end;
← →
Polevi (2003-10-23 10:20) [8]BinToHex - и сохраняй в Varchar поле
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c