Delphi 11 com Firebird 4.0, não consigo conectar no bco
Olá pessoal estou precisando de ajuda, pois estou voltando a programação
Estou usando Delphi 11, bco Firebird 4.0.
Pelo que pesquisei no Delphi 11 ao clicar duas vezes em cima do componemte SQLConnection não abre mais a caixa para digitação dos parâmetros do bco, pois qando era possível abrir com dois cliques além de alterar poderia dar o nome na conexão e era exibida na propriedade ConnectionName no Objeto inspector.
Acontece que no Delphi 11 eu consegui alterar a configuração ao acessar a propriedade Params (TString ...), tbm deixo com oTrue a propriedade LoadParamsConnect, mas ao clicar na propriedade Connected para deixar True, para ver a conexão dá o erro "Invalid argumento: . "., estou fazendo com DataModule.
Localizei na barra Palette uma aba chamada FireDAC, consegui acesar o bco através do componente TFDConnection, mas tem um problema,........... vou explicar...
... no meu DataModule1 tenho a abertura do bco TFDConnection(aba FireDAC), no meu DataModule2 tenho TClientDataSet > TDataSetProvaider > TFDQuery(aba FireDAC), esse componente query se eu deer dois clique eu consigo inserir comandos sql e ao clicar em EXECUTE roda normal, mas se eu clicar duas vezes no componente TClientDataSet abre uma caixa para inserir os campos, mas ao tentar inserir dá o erro "Invalid parameter..". Se eu for utilizar em um DataSouce para colocar dados em um DBEdit ou Grid, eu preencho a propriedade DataSource e a propriedade DAtaField não aparece o nome dos campos da tabela(devido não ter conseguido colocar os campos no TClientDataSet .
Preciso de ajuda para usar o SQLConnection , pois no momento está apareceno o erro "Invalid argumento: . " ao tentar colocar True, ou, usar o TFDConnection(aba FireDAC) mas conseguir preencher o TClientDataSet com os campos da tabela, ou outro componente.
Talvez ficou um pouco confuso para entender, por favor pode perguntar que tentarei explicar melho.
Obrigado
Estou usando Delphi 11, bco Firebird 4.0.
Pelo que pesquisei no Delphi 11 ao clicar duas vezes em cima do componemte SQLConnection não abre mais a caixa para digitação dos parâmetros do bco, pois qando era possível abrir com dois cliques além de alterar poderia dar o nome na conexão e era exibida na propriedade ConnectionName no Objeto inspector.
Acontece que no Delphi 11 eu consegui alterar a configuração ao acessar a propriedade Params (TString ...), tbm deixo com oTrue a propriedade LoadParamsConnect, mas ao clicar na propriedade Connected para deixar True, para ver a conexão dá o erro "Invalid argumento: . "., estou fazendo com DataModule.
Localizei na barra Palette uma aba chamada FireDAC, consegui acesar o bco através do componente TFDConnection, mas tem um problema,........... vou explicar...
... no meu DataModule1 tenho a abertura do bco TFDConnection(aba FireDAC), no meu DataModule2 tenho TClientDataSet > TDataSetProvaider > TFDQuery(aba FireDAC), esse componente query se eu deer dois clique eu consigo inserir comandos sql e ao clicar em EXECUTE roda normal, mas se eu clicar duas vezes no componente TClientDataSet abre uma caixa para inserir os campos, mas ao tentar inserir dá o erro "Invalid parameter..". Se eu for utilizar em um DataSouce para colocar dados em um DBEdit ou Grid, eu preencho a propriedade DataSource e a propriedade DAtaField não aparece o nome dos campos da tabela(devido não ter conseguido colocar os campos no TClientDataSet .
Preciso de ajuda para usar o SQLConnection , pois no momento está apareceno o erro "Invalid argumento: . " ao tentar colocar True, ou, usar o TFDConnection(aba FireDAC) mas conseguir preencher o TClientDataSet com os campos da tabela, ou outro componente.
Talvez ficou um pouco confuso para entender, por favor pode perguntar que tentarei explicar melho.
Obrigado
Fábio Luíz
Curtidas 0
Respostas
Fábio Luíz
05/07/2023
Pessoal através de pesquisa localizei uma solução, estou usando componentes da "família Firedac", tem que usar todos da mesma família, eu estava misturando por isso os campos não aparecia, já estou fazendo um curso pelo Youtube.
Mas continuo com uma dúvida..........
Como eu faço para gravar registro em multi-usuários(quando eles dão o [Enter] ao mesmo tempo para finalizar um cadastro e não gera duplicidade de chave). Sei que deve ter um retorno de erro ao gravar em duplicidade, mas como evitar que os dois ao mesmo tempo pegue o mesmo número(sequência de chave) para gravar o registro?
Mas continuo com uma dúvida..........
Como eu faço para gravar registro em multi-usuários(quando eles dão o [Enter] ao mesmo tempo para finalizar um cadastro e não gera duplicidade de chave). Sei que deve ter um retorno de erro ao gravar em duplicidade, mas como evitar que os dois ao mesmo tempo pegue o mesmo número(sequência de chave) para gravar o registro?
GOSTEI 0
Arthur Heinrich
05/07/2023
Para não duplicar o ID do registro, você deve utilizar uma sequence.
Utilizar um "select max(ID) from tabela" para identificar o último utilizado e somar 1, é a maneira errada de se fazer.
Utilizar um "select max(ID) from tabela" para identificar o último utilizado e somar 1, é a maneira errada de se fazer.
GOSTEI 0