Jump to content

lazarus/mysql - dbgrid


haemdall

Recommended Posts

Boa tarde

Estou a fazer um programa em lazarus e usando o mysql como base de dados e surgiu-me um problema.

ao abrir um form onde apenas tenho um dbgrid, era suposto aparecer nessa dbgrid, uma lista que seria o resultado de um comando sql. o problema é que ao "arrancar" o programa, o dbgrid fica vazio. o programa não dá erro, simplesmente não aparece nada no dbgrid. o mais estranho é que estou a usar o mesmo tipo de "regras" que no resto do programa:

MySQL50Connection1.open;

  if sqlquery1.active then sqlquery1.Close;

  sqlquery1.sql.text:='select cod_estante, nr_seccao, quant_stock, nome from estagio.prod_alocado,estagio.produtos where prod_alocado.nrproduto = produtos.nr_produto';

  sqlquery1.open;     

gostava de saber se alguem me pode dar umas dicas sobre como corrigir este erro.

Link to comment
Share on other sites

antes de mais ...obrigado por alguem responder...neste caso o agradecimento é para o/a mikas

sim...ja verifiquei isso várias vezes e parece que tudo está a funcionar correctamente. ja consegui corrigir esse erro. no entanto o programa tem outra dbgrid e a outra tem outro problema.

ao aplicar o comando:

MySQL50Connection1.open;

if sqlquery1.active then sqlquery1.Close;

sqlquery1.sql.text:='select nome, sum(quant_stock)as total from estagio.prod_alocado, estagio.produtos where nrproduto = produtos.nr_produto group by nome';

sqlquery1.open;

surge este erro:

mysql50connection1: error executing query: you have an error in your sql sybtax; check the manual that corresponds to your mysql server version for the right syntax to use near 'group by nome)' at line 1.

o meu orientador disse para eu tentar "manualmente", ou seja com este tipo de linguagem:

mysql_init(pmysql(@qmysql));

sock:=mysql_real_connect(pmysql(@qmysql),'localhost','root','eseig','estagio',3306,nil,0);

tmp:='select nome, sum(quant_stock)as total from estagio.prod_alocado, estagio.produtos where nrproduto = produtos.nr_produto group by nome';

query:=pchar(tmp);

mysql_query(sock,query);

recbuf:=mysql_store_result(sock);

while(mysql_fetch_row(recbuf))

rowbuf:=mysql_fetch_row(recbuf);

showmessage(rowbuf[0]); 

mas se antes era complicado para mim ...assim é que não chego lá...

poderá o problema ser por causa de o comando sql ter um Sum()e a versão que uso não ser a correcta? se for...haverá outra forma de contornar este problema?com outro comando?ou até com outra opção que não a dbgrid?

obrigado

Link to comment
Share on other sites

  • 1 month later...
  • 8 months later...

alguém me pode ajudar com duvidas que tenho relativamente à execução de um programa em lazarus cuja base de dados é mysql? é bastante urgente..obrigada

esta alguem disponivel para me tirar uma duvida sobre um erro que me deu em lazarus?

como já alguém respondeu antes, se não colocares as duvidas, não podes esperar respostas...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.