안녕하세요..
MS SQL DB에 인서트를 하려고 하는 건데요...
crs라는 컬럼이 바이너리 타입입니다.. 그냥 asstring으로 했는데 에러가 나더라고요
바이어리는 좀 복잡하다고 들었는데...
스트링을 버퍼에 저장 하거나 또는, 스트림에 저장해서 변환을 하라고 하던데...
저 같은 초보는 무슨말인지도 잘 모르겠습니다..
crs라는 바이너리의 타입 컬럼에 변수를 이용해서 데이터를 인서트하고 싶은 겁니다...
그리고 real 타입에 '';이렇게 빈값이 들어갈 수 있나요?^^:
부탁드릴게요...
procedure TForm1.Button1Click(Sender: TObject); //인서트
var
i: integer;
begin
with Query1 do begin
SQL.Clear;
sql.add(' insert INTO test(model,formulatype,coeff_fm,turbocharger,dataassembly,AIRTEMP,TIMENO)
values (:model,:formulatype,:coeff_fm,:turbocharger,:dataassembly,:AIRTEMP,:IMENO)');
ParamByName('model').Asstring := 'D11'; //varchar
ParamByName('formulatype').Asinteger := 1; //smallint
ParamByName('coeff_fm').Asstring := ''; //real
ParamByName('turbocharger').Asinteger := 1; //bit
ParamByName('dataassembly').Asstring := '2004-03-12 15:26:00.000'; //datetime
//ParamByName('CRS').Asstring := ''; // 바이너리
ParamByName('AIRTEMP').Asfloat := 29.399999999999999; //float
ParamByName('TIMENO').Asinteger := 6; //int
EXecSQL;
end;
Query1.Sql.Clear;
Query1.SQL.Add(' select * from test ');
Query1.Open;
for i := 1 to Query1.RecordCount do begin
StringGrid1.Cells[cmo ,i] := Query1.FieldByName('model').AsString;
StringGrid1.Cells[cfor ,i] := Query1.FieldByName('formulatype').Asstring;
StringGrid1.Cells[ccoeff ,i] := Query1.FieldByName('coeff_fm').ASstring;
StringGrid1.Cells[ctur ,i] := Query1.FieldByName('turbocharger').AsString;
StringGrid1.Cells[cdate ,i] := Query1.FieldByName('dataassembly').AsString;
//StringGrid1.Cells[ccrs, i] := Query1.FieldByName('CRS').AsString; //바이너리...
StringGrid1.Cells[cair, i] := Query1.FieldByName('AIRTEMP').AsString;
StringGrid1.Cells[ctime, i] := Query1.FieldByName('TIMENO').AsString;
StringGrid1.RowCount := StringGrid1.RowCount + 1;
Query1.Next;
end;
end;