최근에 CSDN에 "델파이의 SQLServer에 JPEG 파일에 액세스하는 것"에 대한 두 개의 기사를 본 후에는 설명 된 방법이 바람직하다고 느꼈지만 여기에는 더 간단한 작업 방법이 있으며 안전합니다. 신뢰할 수 있습니다. 나는 혼자서 그것을 즐기지 않고, 그것을 출판하고 모든 사람과 공유 할 의향이 있습니다. 테스트는 Delphi7.0+Win2000+SQLServer 2000으로 통과되었으며 이제 아이디어와 소스 코드가 다음과 같이 공개됩니다.
해결책:
1. 키는 열린 JPEG 파일을 TBITMAP 객체로 동적으로 변환하여 타임 지 객체에 표시하는 것입니다.
2. 표시된 이미지를 데이터베이스에 제출하십시오.
이 예에서, 테스트 예제 테이블은 SQLServer2000 : Exam (XM char (10), 사진 이미지)에서 설정되었습니다.
프로그램 소스 코드 :
단위 savepic;
인터페이스
용도
창, 메시지, 시스템, 변형, 클래스, 그래픽, 컨트롤, 양식,
대화 상자, extdlgs, extctrls, dbctrls, 그리드, dbgrids, db, adodb, 버튼,
stdctrls, jpeg;
유형
tform1 = 클래스 (tform)
SpeedButton1 : tspeedbutton;
AdoConnection1 : 타도 컨칭;
표 1 : 태도 가능;
DataSource1 : Tdatasource;
DBGRID1 : TDBGRID;
dbimage1 : tdbimage;
이미지 1 : 시계;
SpeedButton2 : tspeedbutton;
OpenPicturedialog1 : topenpicturedialog;
라벨 1 : tlabel;
라벨 2 : tlabel;
edit1 : 테디;
SpeedButton3 : tspeedbutton;
절차 SpeedButton2Click (sender : tobject);
절차 SpeedButton1click (sender : tobject);
절차 SpeedButton3Click (sender : tobject);
사적인
{개인 선언}
공공의
{공개 선언}
끝;
var
form1 : tform1;
구현
{$ r *.dfm}
절차 tform1.speedbutton2click (sender : tobject);
var
BMP1 : TBITMAP;
JPG1 : tjpegimage;
시작하다
OpenPicturedialog1.defaultext : = GraphIfextension (tjpegimage);
OpenPicturedialog1.Execute 인 경우
시작하다
bmp1 : = tbitmap.create;
jpg1 : = tjpegimage.create;
노력하다
jpg1.loadfromfile (OpenPicturedialog1.filename);
BMP1.Assign (JPG1);
image1.picture.bitmap.assign (bmp1);
마지막으로
JPG1.FREE;
bmp1.free;
끝;
끝;
끝;
절차 tform1.speedbutton1click (sender : tobject);
시작하다
표 1. 열;
표 1. 인서트;
표 1. FieldByName ( 'XM'). asstring : = edit1.text;
표 1. fieldByName ( 'photo'). 할당 (image1.picture);
표 1. 포스트;
표 1. 리프레시;
끝;
끝.