Recientemente, después de ver dos artículos sobre CSDN sobre "Acceder a los archivos JPEG a SQLServer en Delphi", sentí que el método descrito en él es deseable, pero es bastante lento aquí con un método de operación más simple y es seguro. Confiable, no me atrevo a disfrutarlo solo, estoy dispuesto a publicarlo y compartirlo con todos. La prueba se aprobó en Delphi7.0+Win2000+SQLServer 2000 y funciona bien.
Solución:
1. La clave es convertir dinámicamente el archivo jpeg abierto en un objeto TBITMAP y mostrarlo en el objeto de tiempo;
2. Envíe la imagen mostrada a la base de datos.
En este ejemplo, se estableció una tabla de ejemplo de prueba en SQLServer2000: Examen (XM Char (10), imagen fotográfica);
Código fuente del programa:
Unidad SavePic;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, extdlgs, extctrls, dbctrls, cuadrículas, dbgrids, db, ADODB, botones,
Stdctrls, jpeg;
tipo
TForm1 = class (tForm)
SpeedButton1: TspeedButton;
Adoconnection1: tadoconnection;
Tabla 1: Tadotable;
DataSource1: TDataSource;
Dbgrid1: tdbgrid;
DBIMAGE1: TDBIMAGE;
Imagen1: Tiempo;
SpeedButton2: TspeedButton;
OpenPicturedialog1: TopenPicturedialog;
Etiqueta1: tlabel;
Etiqueta2: tlabel;
Edit1: tedit;
SpeedButton3: TspeedButton;
Procedimiento SpeedButton2Click (remitente: tobject);
procedimiento SpeedButton1Click (remitente: tobject);
procedimiento SpeedButton3Click (remitente: tobject);
Privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
varilla
Form1: tform1;
Implementación
{$ R *.dfm}
procedimiento tForm1.speedButton2Click (remitente: tobject);
varilla
BMP1: TBITMAP;
jpg1: tjpegimage;
Comenzar
OpenPicturedialog1.DefaultExt: = GraphicExtension (TJPegimage);
Si OpenPicturedialog1.ExCute entonces
Comenzar
bmp1: = tbitmap.create;
jpg1: = tjpegimage.create;
intentar
jpg1.loadFromFile (OpenPicturedialog1.FileName);
BMP1.Assign (JPG1);
Image1.picture.bitmap.assign (BMP1);
Finalmente
JPG1.Free;
BMP1.Free;
fin;
fin;
fin;
procedimiento tForm1.speedButton1Click (remitente: tobject);
Comenzar
Tabla 1. Abre;
Tabla 1.insert;
table1.fieldbyName ('xm'). astring: = edit1.Text;
Tabla1.fieldByName ('Photo'). Asignar (Image1.Picture);
Tabla 1.post;
Tabla1.Refresh;
fin;
fin.