lucas_rc 0 Denunciar post Postado Junho 1, 2007 Bom dia pessoal... Pessoal seguinte tenho um sqldataset so que eu preciso pegar o nome da tabela que ele esta ligado a aprtir de alguma propriedade dele ou a partir do commandtext alguem ai tem alguma coisa que possa me ajudar.Desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 O que poderia fazer é ver primeiramente o CommandType que esta sendo usado, se for ctTable pega diretamente do CommandText a tabela, se for ctQuery, pega o SQL e busca o FROM e depois pega a tabela procurando dentro do texto... Compartilhar este post Link para o post Compartilhar em outros sites
lucas_rc 0 Denunciar post Postado Junho 1, 2007 Eu estou usando o ctQuery mas ta dificil de conseguir pegar o nome da tabela pq a tabela muda de acordo com o dataset, você tem mais alguma coisa que possa me ajudar... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 Mas a princípio teria que pegar o comando SQL e ir em busca do from, depois que encontra, o próximo item será a tabela... não uso o sqldataset, então, não sei de todas as possibilidades dele... Compartilhar este post Link para o post Compartilhar em outros sites
lucas_rc 0 Denunciar post Postado Junho 1, 2007 Já conseguir pegaro sql até o exemplo abaixo, o dificil ta sendo pegar agora so o nome da tabela, o SQL que esta chegando para mim é este de baixo.tbPessoaJuridicaWHERE DfIdPe Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 Teria como colocar o fonte que esta usando ?Poderiamos lhe ajudar a arrumar ele... Compartilhar este post Link para o post Compartilhar em outros sites
lucas_rc 0 Denunciar post Postado Junho 1, 2007 //Exemplo do sql da buscaSELECT DfIdMunicipio, DfNomeMunicipio, DfIdSiglaUf, DfCepPadrao, DfCodRais, DfCodMunAFFROM tbMunicipioWHERE (DfNomeMunicipio) LIKE :DESCRICAO //Armazenando o commandtext na variavel SQLCommand := (DataSet as TSQLDataSet).CommandText; i := length('FROM'); for n := 1 to length(SQLCommand) do begin if Copy(SQLCommand, n, i) = 'FROM' then SQLCommand := Copy(TRIM(SQLCommand), n + 5, 30); end; Tabela := COPY(SQLCommand, 1, POS(SQLCommand, 'WHERE'));Cara o muito obrigado pelo apoio.Ai vai o comando q estou usando Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 Alterei um pouco a sua função inicial, teste ela desta forma: var lista: TMemo; x: integer; tabela: string;begintabela:='';lista:=TMemo.Create(Application);lista.Parent:=Self;lista.ScrollBars:=ssBoth;lista.Visible:=False;lista.Lines.Text:=(DataSet as TSQLDataSet).CommandText;for x:=0 to lista.Lines.Count - 1 do begin if AnsiUpperCase(copy(lista.Lines.Strings[x],1,5)) = 'WHERE' then begin tabela:=lista.Lines.Strings[x - 1]; if AnsiUpperCase(copy(tabela,1,4)) = 'FROM' then tabela:=Trim(copy(tabela,5,Length(tabela) - 4)) else tabela:=''; Break; end; end;lista.Free; Compartilhar este post Link para o post Compartilhar em outros sites
lucas_rc 0 Denunciar post Postado Junho 1, 2007 Muito obrigaco cara... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 beleza... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites