怎樣向SQL Server插入帶有Image欄位的記錄

來源:互聯網
上載者:User
怎樣向SQL Server插入帶有Image欄位的記錄

    向SQL Server插入記錄相信大家都會做,但是如果表中帶有Image欄位就不好弄了,這裡有一個例子,非常安全,同時也向大家展示動態產生控制項的技巧(對高手來說班門弄斧了)
procedure Button1Click(Sender:TObject);
var 
  Query : TQuery;
  StringStream : TStringStream;
begin
  StringStream := TStringStream.Create ('');
  Memo.Lines.SaveToStream (StringStream); //在這裡建立一個字元流
  StringStream.Position := 0;
  Query := TQuery.Create(self); //在這裡建立一個臨時的Query
  Query.DatabaseName := Database.DatabaseName;
  with Query.SQL do
    begin
      Clear;
      Append ('INSERT INTO TEST');
      Append ('(ID,CONTENT)'); //CONTENT是一個Image欄位
      Append ('VALUES (:ID, :CONTENT)');
    end;
  with Query do
    begin
      ParamByName ('ID').asInteger := StrToIntDef (edtID.Text,0);
      ParamByName ('CONTENT').asBlob := StringStream.DataString; //就在這裡賦值
    end;
  StringStream.Free; //用完了馬上Free掉
  Database.StartTransaction; //開始事務控制
  try
    Query.ExecSQL; //開始插入記錄
    Database.Commit; //提交事務
  except
    Query.Free; //如果出錯首先將Query Free掉
    Database.RollBack; //回退事務
    raise; //重新引發異常,以通知使用者
  end;
  Query.free;
end; 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.