Boa tarde delhiana... Seguinte: to precisando desenvolver uma rotina para Insert e Update em runtime. para insert tudo bem... faço o seguinte: Q.SQL.Text := 'INSERT into '+tb.TableName+ ' ('+sFields+')'+ ' Values '+ ' ('+sValues+')'; onde tb é uma TIBOTable. sFields são os campos e sValues os campos precedidos de ':' (parametrizados), funciona joinha... mas para update preciso saber qual(is) é(são) os campos q fazem parte da PRIMARYKEY da tb.TableName pra construir a instrução WHERE, ficando algo assim: Q.SQL.Text := 'UPDATE '+tb.TableName+' SET '+ ' ('+sFields+') '+ 'Where '+sPrimary+ ' = :'+tb.Fields.Fields[numcampo].Value; alguem pode me ajudar? só pra ter uma ideia + clara do que eu quero, a rotina de insert vai abaixo:
procedure InstrucaoFireBird_Insert( tb: TIBOTable ); var Q: TIBOQuery; i: Integer; sFields, sValues: String; begin Q := TIBOQuery.Create(nil); try // Estabelece a conexão com o banco... Q.IB_Connection := tb.IB_Connection; // limpa SQL e variaveis... Q.SQL.Clear; sFields := ''; sValues := ''; // gera strings dos campos e variaveis para atribuição... for i := 0 to tb.Fields.Count - 1 do begin // Campos... if sFields = '' then sFields := tb.Fields.Fields[ i ].FieldName else sFields := sFields+','+ tb.Fields.Fields[ i ].FieldName; // Variaveis... if sValues = '' then sValues := ':'+tb.Fields.Fields[ i ].FieldName else sValues := sValues+',:'+ tb.Fields.Fields[ i ].FieldName; end; // Monta a instrução SQL... Q.SQL.Text := 'INSERT into '+tb.TableName+ ' ('+sFields+')'+ ' Values '+ ' ('+sValues+')'; // Carrega os valores dos parametros com base no registro // posicionado da tabela... for i := 0 to tb.Fields.Count - 1 do begin Q.Params[i].Value := tb.Fields.Fields[i].Value; end; // Prepara e executa a SQL... Q.Prepare; Q.ExecSQL; finally Q.Free; end; end; Agradeço qq ajuda... só preciso saber: como capturar os campos q fazem parte da Primary Key da tabela. Obrigadão... Sérgio -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html