2014-06-06 4 views
0

일부 배경 ... 20 개 이상의 파일이 있습니다.
서브 파일 화면을 빌드하는 사전 빌드 된 테이블에서이 파일 이름을 읽습니다. 1 파일을 선택한 다음 선택한 파일의 내용으로 다른 화면을 빌드합니다. 그럼 ... 지금까지 너무 좋아, 디버그 읽고AS400 SQL 동적 삭제 문제

eval  MySQL = stat3 + %trimr(scrwcrd) + STAT3B 

내 SQL 문을 내가 삭제할 레코드를 선택

MySQL = DELETE FROM FILESEL WHERE K00001 = ? with NC 

PREPARE STAT3 from :MYSQL 

EXECUTE STAT3 using :PROD 

: 자극이 화면 선택

에서 제공되는 변수

DELETE에 ROW를 찾을 수 없음을 나타내는 EXECUTE 후에 sqlst가 2000에서 sqlstt = 100으로 끝납니다. 사실 사실이 아닙니다. 선택한 파일에 대한 레코드가 표시되고 디버그 아이디어를 사용하여 PROD의 값을 봅니다 ...

+1

하나의 아이디어 : 일부 구두점, 단락, 코드 강조 표시 등이 실제로 읽을 수있게 해주고, 무작위 의미없는 말의 긴 블로그가 아닙니다. –

+0

여기 가 STAT3B는 DXP는 새로운 사용자이기 때문에 – DXP

+0

@MarcB는, 인하 지침에 지점, 또는 그들을 위해 편집을 하나에 더 도움이 보인다 + 다음 평가 mysql3 = STAT3 + % trimr (scrwcrd) + STAT3A 간다 . IBM midrange 환경에 익숙한 사람들은 어쨌든 코드를 잘 읽을 수 있습니다. 첫 번째 게시물의 경우 너무 나쁘지 않습니다. – WarrenT

답변

1

호스트 변수는 K00001 필드와 :PROD의 데이터 유형과 길이는 무엇입니까?

평등이 문제가 될 수 있습니다. 문자 필드 인 경우 일치시킬 값은 TRIM/%TRIM 일 수 있습니다.

+0

k00001 & : 두 숫자 모두 7을 나타냅니다. 프로그램 외부에서 실행될 때 delete 문이 잘 작동하여 필요한 레코드를 찾아 삭제합니다. – DXP

+0

SQL 문에 매개 변수 표식이 포함되어 있으므로 ** "프로그램 외부에서 **"실행할 수 없습니다. 그러나 이것은 매개 변수 마커가'K00001'에 대한 값과 일치하지 않거나 적절한 데이터 유형으로 일치하지 않는 값으로 대체되고 있음을 나타냅니다. 명령문이 실행될 때'K00001 '과'PROD'와'PROD'의 디버그 값에 대한 실제 정의를 볼 필요가 있습니다. – user2338816