><b>* WRITE part</b> >lcFileName = "F:\TWAIN20.ZIP" && this file got corrupted when use text field on SQL server >* create temporary buffer table >if file("F:\ttt.dbf") > erase ("F:\ttt.dbf") >endif >if file("F:\ttt.fpt") > erase ("F:\ttt.fpt") >endif >select 0 >create table "F:\ttt" FREE (mData M) >* take binary data from file into memo >select ttt >append blank >append memo mData from (lcFileName) overwrite >use >* change memo field type to general to match to image type on SQL Server >ll = fopen("F:\ttt.dbf",12) >fseek(ll,43) >fwrite(ll,'G') >fclose(ll) >* write data to SQL Server >use F:\ttt alias __DATA >lcSQL = 'insert into test values (?__DATA.mData)' >if !(oApp.oServer.RunQuery(m.lcSQL)) > messagebox(oApp.oServer.cError) >endif >use in __DATA > > ><b>* READ part</b> >* take data from SQL server >lcSQL = 'select mData from test' >if !oApp.oServer.RunQuery(m.lcSQL,"TT") > messagebox(oApp.oServer.cError) >endif >*** here we have general field in 'TT' cursor because image type on SQL Server. >* save data to temporary table >select TT >if file("F:\ttt.dbf") > erase ("F:\ttt.dbf") >endif >if file("F:\ttt.fpt") > erase ("F:\ttt.fpt") >endif >copy to "F:\ttt" >use > >* change general field type to memo >ll = fopen("F:\ttt.dbf",12) >fseek(ll,43) >fwrite(ll,'M') >fclose(ll) > >* save dtaa from memo field into file >use "F:\ttt" alias TT >lcFileName = "F:\qwerty.zip" && test file name with result from SQL Server >if file(lcFileName) > erase (lcFileName) >endif >local lH >lH = FCREATE(lcFileName) >FWRITE(lH,TT.mData) >FCLOSE(lH) >use in TT >* here you can compare "F:\qwerty.zip" and "F:\TWAIN20.ZIP" - they should match >Thanks Vlad,