Q&A

  • ClientDataSet에서Parameter오류
               InsQry := TClientDataSet.Create(Self);
               InsQry.Close;
               InsQry.RemoteServer := DmMain.SocketConnection;
               InsQry.ProviderName := 'DSPMain';
               InsQry.CommandText := '';
               InsQry.CommandText := 'Update Customer Set CustomerName = :Param2, '
                                   + '                    ShortName = :Param3, '
                                   + '                    Chief = :Param4, '
                                   + '                    Charge = :Param5, '
                                   + '                    Nation = :Param6, '
                                   + '                    Address = :Param7, '
                                   + '                    ZipCode = :Param8, '
                                   + '                    TelNo = :Param9, '
                                   + '                    FaxNo = :Param10, '
                                   + '                    LicenseNo = :Param11, '
                                   + '                    EMailAddr = :Param12, '
                                   + '                    Condition = :Param13, '
                                   + '                    BItem = :Param14, '
                                   + '                    Remark = :Param15 '
                                   + 'Where CustomerCode = :Param1';
               InsQry.Params.Clear;
               InsQry.Params.CreateParam(ftString, 'Param1', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param2', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param3', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param4', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param5', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param6', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param7', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param8', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param9', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param10', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param11', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param12', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param13', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param14', ptInput);
               InsQry.Params.CreateParam(ftString, 'Param15', ptInput);

               InsQry.Params.ParamByName('Param1').AsString := FEdtCustomerCode.Text;
               InsQry.Params.ParamByName('Param2').AsString := FEdtCustomerName.Text;
               InsQry.Params.ParamByName('Param3').AsString := FEdtShortName.Text;
               InsQry.Params.ParamByName('Param4').AsString := FEdtChief.Text;
               InsQry.Params.ParamByName('Param5').AsString := FEdtCharge.Text;
               InsQry.Params.ParamByName('Param6').AsString := FEdtNation.Text;
               InsQry.Params.ParamByName('Param7').AsString := FEdtAddress.Text;
               InsQry.Params.ParamByName('Param8').AsString := FEdtZipCode.Text;
               InsQry.Params.ParamByName('Param9').AsString := FEdtTelNo.Text;
               InsQry.Params.ParamByName('Param10').AsString := FEdtFaxNo.Text;
               InsQry.Params.ParamByName('Param11').AsString := FEdtLicenseNo.Text;
               InsQry.Params.ParamByName('Param12').AsString := FEdtEMailAddr.Text;
               InsQry.Params.ParamByName('Param13').AsString := FEdtCondition.Text;
               InsQry.Params.ParamByName('Param14').AsString := FEdtBItem.Text;
               InsQry.Params.ParamByName('Param15').AsString := FMemoRemark.Text;

               InsQry.Execute;


소스는이렇습니다....
실행시키면 아무런 error없이 잘돌아갑니다...
하지만 제가 Update하려고 한내용이 그대로 입니다..
우찌된일인지 헤메고 있습니다...
도움 부탁드립니다...
1  COMMENTS
  • Profile
    미소나눔 2002.09.13 09:37
    일반적으로 CDS(ClientDataSet) / DSP(DataSetProvider)  라고 하지용..

    일단 원리 부터..

    CDS는 DSP 와 연결되어 있지용..  DSP 는 CDS 에 제공될 데이타 셋과
    연결되어 있구요..근데 CDS 는 다른 데이타를 받기위해 DSP 의 데이타 셋을 오버라이드 할수 있습니다.  단. 조건이 있지요.. DSP 가 허용한다는 전제조건!
    CommandText 를 사용할 수 있게 DSP 의 Option 의 poAllowCommandText 을 True 로 해야 됩니다. 아이면 CommandText 속성은 무시됩니다. 에러 없이 돌아간다니 .. 일단 그 문제 같네용...
    확인해보세용...

    즐푸하세용..