|
님이 써주신 답변 정말 고맙구여...제가 워낙에 초보라 저한테 많은 도움이 되었습니다..
그런데 한가지 궁금한점이 있는데여..제가 원래 의도한 바는 님이 생각한 것처럼 DB에서
Data를 읽어와 그 내용을 텍스트 파일로 저장하고 싶거던여..그런데 님이 가르쳐준 방법대로
Data를 메모박스에다 읽어오면 그 내용을 어떻게 텍스트파일로 저장할수가 있는지 잘 모르겠어여..
죄송하지만 고수님의 답변을 다시한번 부탁드립니다...plz..
withFish 님이 쓰신 글 :
: 음... 물고기 좋아하는 넘입니다.
: 일단은 DB에서 Next는 프로퍼티가 아니라, 메쏘드입니다.
: 그러니깐..
:
: Query1->Next();
:
: 처럼.. 사용해서야 에러가 나지 않구요...
:
:
: 음.... 그리고
:
: :: strcpy(Str,Query1->Fields->Fields[i]->FieldName.c_str());
:
: 요 라인이 이상하거든요..
:
: Fields에서 각 저장된 자료 즉,레코드의 값을 가져오는데..
: Query1->Fields->Fields[0]->AsString 나 Query1->FieldByName("NameField")->AsString
: 이렇게 사용하거든요..
:
: 님께서 사용하신 방법은 Column의 이름을 가져오는 방법입니다.
: 헌데, 루프를 도는 것을 보면.. 저장된 레코드를 가져오게 되어 있거든요..
: 뭔가 착오가 있으신듯하네요..
:
: 그리고, 빌더에서의 AsString이라는 좋은 데이터 타입(!!)이 있습니다.
: 따라서, 데이터 베이스의 값을 가져오실때..
: AnsiString이나 String으로 변수를 정해놓고..
:
: String tmp="";
:
: while(!Query1->Eof)
: {
: tmp = Query1->Fields->FieldByName("Name")->AsString ;
: Memo1->Lines->Add(tmp);
: Query1->Next();
: }
:
: 이렇게 뽑아오면 되여..
:
: 그럼 즐프하세요.. ^^
:
:
:
:
: 멘땅에 헤딩 님이 쓰신 글 :
: : ======빌더를 시작한지 얼마 안되는 초보입니다..
: : 혼자서 해결할려고 했는데.. 도저히 제 능력으로는 어렵네여..
: : 지정한 파일에 값이 들어가기는 들어가는데 쓰레기값하고 같이 들어가여..
: : 제 생각으로는 fwrite부분에서 sizeof부분에서 문제인것 같은데...
: : 그리고 또 하나 Query1->Next부분에서 에러가 나거든여..그 부분도 어떻게 안될까여...
: :
: :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : int i, j, ColTemp, Col;
: : char StrTemp[20][50];
: : char Str[50];
: : FILE *fp;
: :
: : if ((fp = fopen("c:\창길이\samfile.txt", "wt")) == NULL)
: : {
: : ShowMessage("파일이 열리지 않았습니다.");
: : }
: :
: : Col = Query1->FieldCount; //필드의 갯수
: :
: : // while(!Query1->Eof)
: : // {
: : for (i = 0; i < Col; i++)
: : {
: : strcpy(Str,Query1->Fields->Fields[i]->FieldName.c_str());
: : ColTemp = strlen(Str); //쓰레기값을 제거하기 위해 문자열의 길이 파악
: : for ( j =0; j < ColTemp; j++)
: : {
: : StrTemp[i][j] = Str[j];
: : }
: : }
: : fwrite(&StrTemp, sizeof(StrTemp), 1, fp);
: :
: : // Query1->Next;
: : // }
: : fclose(fp);
: :
: :
: : }
: :
: :
: :
|