2010-02-26 2 views
4
나는 TAdoTable 구성 요소를 사용하려고 해요

,데이터를 삽입 [델파이]

  • 양식에 내가으로 .Append을 (전화 작성) 및 버튼에 내가 전화 .Post()

하지만 전체 테이블을로드합니다! 아무것도로드 할 필요가 없습니다.이 테이블에 행을 삽입하기 만하면됩니다.

내가 거기에, 난 이미 TAdoCommand로는 "수동"접근 방식을 사용하여 시도 ADO를 데이터베이스에 데이터를 삽입하는 "좋은 방법"하지만 그것은 바로 내

  • 나는 것 같습니다하지 않는 경우 궁금 해서요 Format()을 사용하여 INSERT 쿼리를 생성하면 모든 문자열 필드는 QuotedStr()으로 이스케이프 처리됩니다.

미리 감사드립니다!

아서.

답변

6

SQL 명령을 발사하는 SQL 명령을

  • 사용 TADOQuery.ExecSQL 방법을 설정합니다).

    의 CommandText를 설정하여 .Append.Post

    하지만 개인적으로, 나는 그런 TADOCommand와 같이 SQL을 작성 선호를 한 후, 테이블에서 즉 SELECT TOP 0 * FROM [table] 0 레코드를 반환 사용에 내가 그것을 할 방법은 때때로

  • +0

    이것은 내가 찾고있는 것입니다. 13 개의 필드가있는 "수동"인서트를 탑재하는 것은 그리 좋지 않습니다. – arthurprs

    +0

    "select top 0"대신 "select * from Table where PrimaryKeyField = 0"과 같은 where 절을 사용할 수도 있습니다. 그냥 표 –

    +2

    에 존재하지 않는 값을 사용하거나'WHERE 1 = 2'를 사용하십시오 –

    6

    테이블의 데이터를 표시 할 필요가없는 경우 TADOQuery 오브젝트를 사용하십시오. 기본적으로

    :

    • 사용 TADOQuery.SQL.Text 당신은 TADODataset (또는 TADOQuery을 사용할 수 있습니다
    2

    TADOCommand 구성 요소를 사용하여 특정 SQL 명령을 실행할 수도 있습니다. 동일한 명령을 반복해서 수행하는 경우 (예 : 테이블에 삽입하는 경우) 모든 호출에 대해 SQL을 직접 변경하는 대신 매개 변수 사용을 고려하십시오. 매개 변수는 사용하기 쉽고 그냥 PARAMNAME을 SQL에 배치 한 다음 사용중인 ADT 구성 요소의 매개 변수 객체를 사용하여 값을 설정하십시오. 예를 들어 :

    TAdoCommand 구성 요소의의 CommandText를 가정하면 위의 SQL을 실행하면 "INSERT INTO TABLENAME (FIELD1) VALUES (:FIELDVALUE1)는"

    AdoCommand1.Parameters.ParamByName('FIELDVALUE1').Value := 'TEST' 
    AdoCommand1.Execute; 
    

    , 다음 문자열 "TEST는"FIELD1에 기록 될 것입니다 포함되어 있습니다.

    1
    var 
        CountVar: Integer; 
    
    begin 
    
        TADOConnection1.Execute(ASQLInsertStatement, CountVar, [adExecuteNoRecords]); 
    
    end; 
    
    관련 문제