guardar datos de StringGrid en mysql
#1
Posted 03 July 2012 - 04:53 PM
#2
Posted 03 July 2012 - 05:21 PM
Saludos.
#3
Posted 04 July 2012 - 08:06 AM
tabla2.SQL.Clear; tabla2.Close; tabla2.SQL.Add('insert into cobro( cantidad, codigo, descripcion, unitario) values(:, :cantidad, :codigo, :descripcion, :unitario) '); stringGrid1.Cells[1, StringGrid1.Row]:=tabla2.ParamByName('cantidad').AsString; stringGrid1.Cells[2, StringGrid1.Row]:=tabla2.ParamByName('codigo').AsString; stringGrid1.Cells[3, StringGrid1.Row]:=tabla2.ParamByName('descripcion').AsString; stringGrid1.Cells[4, StringGrid1.Row]:=tabla2.ParamByName('unitario').AsString;
tabla2.Execute;
#4
Posted 04 July 2012 - 08:25 AM
tabla2.SQL.Clear; tabla2.Close; tabla2.SQL.Add('insert into cobro( cantidad, codigo, descripcion, unitario) values(:cantidad, :codigo, :descripcion, :unitario) '); tabla2.ParamByName('cantidad').AsString := stringGrid1.Cells[1, StringGrid1.Row]; tabla2.ParamByName('codigo').AsString := stringGrid1.Cells[2, StringGrid1.Row]; tabla2.ParamByName('descripcion').AsString := stringGrid1.Cells[3, StringGrid1.Row]; tabla2.ParamByName('unitario').AsString := stringGrid1.Cells[4, StringGrid1.Row]; table2.ExecSQL;
Saludos
PD, Supongo que Table2 es un Query, porque si no, no me explico porque no hay error
#5
Posted 04 July 2012 - 08:28 AM
#6
Posted 04 July 2012 - 08:30 AM
for i := 1 to StringGrid1.RowCount do begin Query.SQL.Clear; Query.SQL.Add('insert into cobro( cantidad, codigo, descripcion, unitario) values(:, :cantidad, :codigo, :descripcion, :unitario) '); Query.ParamByName('cantidad').AsString := stringGrid1.Cells[1, i] ; Query.ParamByName('codigo').AsString := stringGrid1.Cells[2, i]; Query.ParamByName('descripcion').AsString := stringGrid1.Cells[3, i]; Query.ParamByName('unitario').AsString := stringGrid1.Cells[4, i]; Query.ExecSQL; end;
A veces sucede que se agrega una línea de más en el TStringGrid a medida que agregas filas para insertar datos, por eso, ddicionalmente yo haría una validación antes de hacer la inserción a la tabla que validara que la linea que estás por ingresar tenga datos... pero eso te lo dejamos de tarea
Saludox !
#7
Posted 04 July 2012 - 08:41 AM
#8
Posted 04 July 2012 - 08:50 AM
#9
Posted 04 July 2012 - 08:51 AM
gracias por la respuesta aunque me esta marcando el siguiente error #21S0 column count doesn´t match value count at row1 ya me tocara ver de que se trata
Quita los dos puntos y la coma antes de cantidad, si hay otro datos tendras que ponerlo en el query y asignarlo en los parametros.
Saludos
#10
Posted 03 January 2018 - 03:27 PM
procedure Guardar(); var StrSQl, cantidad, codigo, descripcion, unitario: string; i : integer; begin for i := 0 to StringGrid1.RowCount - 1 do begin cantidad := stringGrid1.Cells[0, i]; codigo := stringGrid1.Cells[1, i]; descripcion := stringGrid1.Cells[2, i]; unitario := stringGrid1.Cells[3, i]; StrSQl := 'insert into cobro(cantidad, codigo, descripcion, unitario) ' + ' values(' + cantidad + ',' + quotedstr(codigo) + ',' + quotedstr(descripcion) + ',' + quotedstr(unitario) + ')'; Query.SQL.text := StrSQl; Query.Execsql; end; end;
Un poquito tarde, pero que sirva de algo para quien(es) en un futuro llegue(n) por estos lares..
#11
Posted 03 January 2018 - 08:38 PM
Un poquito tarde, pero que sirva de algo para quien(es) en un futuro llegue(n) por estos lares..
Nunca es tarde para aportar los conocimentos. Muchas gracias amigo
Saludos