Fórum Pegar Sql gerada pelo Provider antes de atualizar no banco #48757
07/01/2005
0
Valeu
Michel
Curtir tópico
+ 0Posts
07/01/2005
Bon Jovi
Exemplo:
object ClientDataSet1: TClientDataSet ProviderName = ´DataSetProvider1´ Left = 4 Top = 4 object ClientDataSet1CHAVE: TIntegerField FieldName = ´CHAVE´ ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] end object ClientDataSet1NAOCHAVE: TStringField FieldName = ´NAOCHAVE´ ProviderFlags = [pfInUpdate] Size = 10 end end object DataSetProvider1: TDataSetProvider DataSet = ADODataSet1 UpdateMode = upWhereKeyOnly Left = 36 Top = 4 end object ADODataSet1: TADODataSet Left = 68 Top = 4 object ADODataSet1CHAVE: TIntegerField FieldName = ´CHAVE´ ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] end object ADODataSet1NAOCHAVE: TStringField FieldName = ´NAOCHAVE´ ProviderFlags = [pfInUpdate] Size = 10 end end
Note q além de pfInKey, deve-se colocar tb pfInUpdate e pfInWhere nos campos q fazem parte da chave primária.
Mas se ainda precisar depurar ou mexer, coloque um breakpoint em um desses métodos:
TSQLResolver.InternalDoUpdate(Tree: TUpdateTree; UpdateKind: TUpdateKind);
TSQLResolver.DoExecSQL(SQL: TStringList; Params: TParams);
($(DELPHI)\Source\Vcl\Provider.pas)
Terá q marcar ´use debug DCUs´ em Project/Options/Compiler.
Se precisar alterar o SQL montado, terá q dar herdar e dar override no método DoExecSQL.
Gostei + 0
07/01/2005
Bon Jovi
Gostei + 0
07/01/2005
Michel
Obrigado...Valeu
Gostei + 0
07/01/2005
Michel
Valeu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)