Q&A

  • 바이너리 타입의 컬럼에 데이터 인서트 하기!
안녕하세요..

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;  
0  COMMENTS