정말로 감사합니다...
저의 구세주이시네요...
계속 멋진 답변 부탁 드립니다.....
그럼 행복하세요
civilian 님이 쓰신 글 :
: 구조체를 다음과 같이 변경해보았습니다.
:
: type
: TDCOPACCUM_INFO = record
: ChamberId : array[0..11] of char;
: DcopPmName : array[0..35] of char;
: PPID : array[0..99] of char;
: CHStep : array[0..23] of char;
: AccumPmValue : double;
: bAegisReport : Boolean;
: end;
:
: procedure TForm1.Button1Click(Sender: TObject);
: var
: Info1, Info2: TDCOPACCUM_INFO;
: Stream: TMemoryStream;
: begin
: //
: // 구조체 원본에 값을 넣습니다.
: //
: Info1.ChamberId := '00001';
: Info1.DcopPmName := '볼랜드포럼';
: Info1.PPID := '10000';
: Info1.CHStep := '20000';
: Info1.AccumPmValue := 10.10;
: Info1.bAegisReport := True;
:
: //
: // 스트림에 구조체의 내용을 기록합니다.
: //
: Stream := TMemoryStream.Create;
:
: //--방법 1
: Stream.Write(Info1.ChamberId[0], 12);
: Stream.Write(Info1.DcopPmName[0], 36);
: Stream.Write(Info1.PPID[0], 100);
: Stream.Write(Info1.CHStep[0], 24);
: Stream.Write(Info1.AccumPmValue, SizeOf(Info1.AccumPmValue));
: Stream.Write(Info1.bAegisReport, SizeOf(Info1.bAegisReport));
:
: //--방법 2
: Stream.Write(Info1, SizeOf(Info1));
: //--두가지 방법 중 편한 것으로 ~^^
:
:
: //
: // 스트림에서 값을 읽은 후 구조체에 넣습니다.
: //
: Stream.Position := 0;
:
: //--방법 1
: Stream.Read(Info2.ChamberId[0], 12);
: Stream.Read(Info2.DcopPmName[0], 36);
: Stream.Read(Info2.PPID[0], 100);
: Stream.Read(Info2.CHStep[0], 24);
: Stream.Read(Info2.AccumPmValue, SizeOf(Info2.AccumPmValue));
: Stream.Read(Info2.bAegisReport, SizeOf(Info2.bAegisReport));
:
: //--방법 2
: Stream.Read(Info2, SizeOf(Info2));
: //--두가지 방법 중 편한 것으로 ~^^
:
: //
: // 넣은 값을 화면에 표시해봅니다
: //
: Edit1.Text := String(Info2.ChamberId);
: Edit2.Text := String(Info2.DcopPmName);
: Edit3.Text := String(Info2.PPID);
: Edit4.Text := String(Info2.CHStep);
: Edit5.Text := FloatToStr(Info2.AccumPmValue);
: CheckBox1.Checked := Info2.bAegisReport;
:
: FreeAndNil(Stream);
: end;
:
: DB의 필드에 넣으려면 TMemoryStream 대신 BLOB필드에 넣으면 되겠죠.
: 그럼..^^
:
: 이민석 님이 쓰신 글 :
: :
: : TDCOPACCUM_INFO = record
: : ChamberId : string[12];
: : DcopPmName : string[36];
: : PPID : string[100];
: : CHStep : string[24];
: : AccumPmValue : double;
: : bAegisReport : Boolean;
: : end;
: :
: : 이런 형식의 메모리에 올려진 Record를 Database 필드에 그대로 저장했다가
: : 그대로 올리는 방법이 있을까요????
: :
: : Stream으로 binary형태로 저장해서 읽어올 수 있을거 같아서 해봤는데
: : 델파이 초보다 보니 아무리 해도 모르겠습니다..
: :
: : 지금 거의 일주일동안 시도를 하고 있는데.. 좀 도와주세요...
|