사용 된 언어는 Lazarus Pascal이고 DB는 PostgreSQL입니다.Lazarus + PostgreSQL : 왜 빈 텍스트 박스는 단일 음성 마크와 함께 저장됩니까?
dbQuery_Supp.Params.ParamByName('pCity').AsString := txtCity.Text;
을 그리고 이것은 DB에 INSERT 쿼리를 사용하여 작성 :
나는 다음과 같은 매개 변수에 값을 할당하고있다.
값이있는 필드에 대해 데이터가 올바르게 저장됩니다. 그러나 데이터가없는 텍스트 상자의 경우 pgadmin을 사용하여 열 때 필드에 작은 따옴표 ('')가 표시됩니다.
내 질문 :
나는 데이터가 입력 텍스트 상자에없는 경우, 그 값에 대한 필드는 작은 따옴표 대신 DB에 비어 있는지 확인해야합니다. 전통적으로 (VB에서) 각 텍스트 상자의 값을 확인하고 데이터가있는 경우에만 삽입합니다. 이것은 나사로에서하는 것과 같은 일입니까, 아니면 이것에 대한 방법이 있습니까? 매개 변수를 사용하여 값을 쓰고 있기 때문에 각 필드를 검사하는 문자열을 작성하는 것은 추가 작업처럼 보입니다. 그래서 저는 하나 있다면 더 효율적이고 편리한 방법을 찾고 있습니다.
감사합니다.
_years_에서 Pascal/Delphi를 보지 못했습니다. 나는 적절한 구문을 기억조차 못합니다. 가장 먼저 시도 할 것은 : 빈 문자열을'nil'으로 대체하려고하면 어떻게 될까요? 그것이 작동한다면, 길이가 0 인 문자열을'nil'으로 대체하는 프로 시저를 작성한 다음 모든 프로 시저를 그 프로 시저로 랩핑 할 수 있습니다. – dschulz
@dschulz 예, 좋은 제안입니다. 하지만 다른 필드 유형 (숫자, 날짜 등)이 무의미한 값을 취하는 방식을 모르겠습니다. 그것은 더 많은 수표를 의미 할 것이지만 좋은 생각입니다. 여기서 적절한 해결책을 찾지 못하면 그 방법에 의지해야한다고 생각합니다. 입력 해 주셔서 감사합니다.) – itsols