Table 이나 query 에 있습니다
고고싱TV 님이 쓰신 글 :
: 그런데 DBGrid에 Edit()나 State같은 게 없다는데요? ->를 쳐서 확인해 봤는데 없어서 뭐가 잘못 된건가요? 참고로 저 빌더 6입니다.
: 하안인 님이 쓰신 글 :
: : DB에 있는 내용을 업데이트하려면 먼저 상태값이 edit 상태이어야 합니다.
: :
: : DBGrid1->State != dsEdit || DBGrid1->State != dsInsert 이면
: : DBGrid1->Edit(); -> 이상태로 바꾸고 나서 업데이트 하셔야 합니다.
: :
: : State , Edit() 값을 찾아 보시면 알수 있습니다.
: :
: :
: : 고고싱TV 님이 쓰신 글 :
: : : 안녕하세요! C++ 빌더 초보 고고싱입니다!
: : : 제가 DBGrid에다가 필드를 선택해 항목을 추가 시키는 프로그램을 짜려고 하는데요~
: : : 선생님께서 DBGrid1->Fields[필드번호]->Text라는 것으로 추가를 할수있다고 하십니다~
: : : Query에서 SQL에서 INSERT를 하는것보다 쉽다고 하셔서요~
: : : 그래서 제가 이렇게 프로그램을 짜보았습니다!
: : : AnsiString r=Socket->ReceiveText(),c;
: : : int a=r.Pos('#'),t=0;
: : : c=r.SubString(1,a-1);
: : : DBGrid1->Fields[0]->Text=c;
: : : r=r.Delete(1,a);
: : : a=r.Pos('#');
: : : c=r.SubString(1,a-1);
: : : DBGrid1->Fields[1]->Text=c;
: : : r=r.Delete(1,a);
: : : a=r.Pos('#');
: : : c=r.SubString(1,a-1);
: : : DBGrid1->Fields[2]->Text=c;
: : : r=r.Delete(1,a);
: : : a=r.Pos('#');
: : : c=r.SubString(1,a-1);
: : : DBGrid1->Fields[3]->Text=c;
: : : r=r.Delete(1,a);
: : : 원래 좀 짧게 할수있는데 사실은 에러가 나서 바꾸었어요.
: : : 그 에러가 뭐냐면은
: : : Project Project1.exe raised exception class EDatabaseError with message 'ADOQuery1: Dataset not in edit or insert mode'.
: : : 이에요... 대충 해석해 보니까 Query가 에딧 또는 인서트 모드가 아니라서 데이터를 저장할수 없습니다 라고 해석했어요.
: : : 어떡하면 될까요? 도와주시면 감사하겠습니다!
|