MJ
Comando SQL e OnSave
Olá, bom dia, estou tentando gravar informações (arquivos em Blob) no banco de dados, porém não consegui fazer a conversão e aproveitar o OnSave do próprio Adianti, por isso estava usando comando SQL, porém mesmo colocando o a execução do SQL no fim do OnSave, o Adianti continua salvando por cima da gravação do SQL. O comando SQL está sendo executado, porém a informação do Adianti sobrepõe os dados em blob, mesmo o comando SQL estando sendo executado depois do "store" do OnSave. Obrigado!
Poste o código
A parte mencionada está no OnSave. Obrigado!
Você está executando o update após fechar a transação. Feche a transação somente após executar todos os comandos sql.
Oi Nataniel, eu fiz isso no desespero, porém já havia testado dentro da transação, e mesmo assim o Adianti grava por cima do Update (o update chega a executar). Tem alguma outra ideia de como resolver? Eu tinha pensado, tem como eu criar o TFile sem vincular ele com um campo do banco/classe? Assim o Adianti nao faria a gravação automática por cima do valor do update. Obrigado!
Retire as aspas que cercam os parâmetros(interrogações):
Olá Nataniel, retirei as aspas, como já havia feito em outros testes, porém o problema persiste, já tentei abrir uma conexão só pra realizar este update e mesmo assim o Adianti salva por cima, vinculei os TFile com outro campo, e continua salvando um Blob de 1 byte que eu não sei de onde vem, mesmo os valores que estou inserido no Update sejam: {1, 2, 3}. Já não sei mais o que fazer cara.
Nataniel, meio que consegui fazer o Update enviar os dados para o banco, ainda não nos campos certos mas consegui, porém ele estava indo sem ser em Base64, coloquei um encoder, está funcionando, mas quando vou converter em imagem novamente, ela está corrompida.
Você realmente precisa trabalhar com blob? Não pode deixar os arquivos no servidor e gravar o caminho no banco de dados?
Se realmente precisa, pra facilitar sugiro criar o campo como longtext no banco de dados e codificar com base64. Segue exemplo simples: