|
유엔아이 입니다 ..
헉 .. 어찌 그리응용을 하십니까 ...
이리 하셔야 하지 않을까요~
: AnsiString asCommand;
: AnsiString asData;
:
: Query1->Close();
: Query1->SQL->Clear();
: Query1->SQL->Add("update users");
: Query1->SQL->Add("set state = " + asData);
: Query1->SQL->Add("where userid = '" + asCommand + "'");
: Query1->Open();
라고 하셔야 하지 않을 까요~
파라메타는 SQL 문장을 디자인 타임에서 미리 선언을 하고 변수를
코딩으로 제어하기위한 하나의 방편이지요
어짜피 SQL 을 만든다면 구냥 파라메타 없이 직접 입력 하시는게...
구리고 아래 문장이 왜 않되냐면요~
문자열을 비교 할때는 '' 에 쌓여 있어야 한답니다.
그럼
홍지곤 님이 쓰신 글 :
:
:
: UPDATE SET data = 2 WHERE id = 'magic';
:
: 이렇게 하면 된다고 하셨는데요..
:
: 임의로 data에 2값하고, id 값에 magic라는 값을 넣는게 아니고요..
:
: 임의에 변수에 Command와 Data에 값을 받아서 Update 문장을 하려고 합니다.
:
: 그래서 이렇게 구현을 했습니다.. 그런데 문제가 있습니다.
:
: AnsiString asCommand;
: AnsiString asData;
:
: Query1->Close();
: Query1->SQL->Clear();
: Query1->SQL->Add("update users");
: Query1->SQL->Add("set state = :state");
: Query1->SQL->Add("where userid = :userid");
: Query1->ParamByName("userid")->AsString = asCommand;
: Query1->ParamByName("state")->AsInteger = StrToInt(asData);
: Query1->Open();
:
: 이런 메시지가 나옵니다.
: Invalid column name 'state'.'.Process stopped.
:
: 꼭 이게 아니더라두... userid칼럼과 == 변수 asCommand값이 일치하면
: state칼럼에 asData값을 넣어 수정하게 할 수 있는 방법요..
:
: 아시는 분 가르켜 주세요...
:
: 그럼..즐프하세요
:
|