我想把dbgrid中选中行的数据提出来,传到别出去,但不知道怎样做?
最好有个例子?
谢谢各位!!!
最好有个例子?
谢谢各位!!!
解决方案 »
- 老菜鸟又碰上了头痛的报表问题
- 以下代码用delphi怎样写?
- EhLib的 DBGridEh1.RowCount 的值怎么不对啊?
- 我用的是cxgrid4.5,我有一个问题求救大家。我知道grid中的某一列的caption,怎么返回此列的databinding.fieldname?
- delphi粘贴后怎么让文本从右到左粘贴
- 大家看看我得这几句代码那有问题?
- 无法设置DatabaseName是为什么?
- 前台程序,数据库管理系统,数据库
- 关于.dfm的问题
- 怎么使用多个combebox连接一个table的字段。
- 如何用delphi读取到indy 中http 重定向后的 Location 值????谢谢老大们
- 求教各种提高SQL 2000 SP3远程访问速度的做法。在线!!
...
tempN:=dbgrid1.datasource.dataset.fieldbyname('字段N').value;
在别外你在数据库中找到这一条记录就行了,delphi中没用过,一起学习
aa:=self.dbgrid1.datasource.dataset.fields[0].asstring;0为第一列的字段值
a,b,c:string;a:=adoqry.fields[0].asstring;
b:=adoqry.fields[1].asstring;
c:=adoqry.fields[2].asstring;這樣就可以傳遞了
ViewFieldName: String = ''; TableFieldName: String = '');
//删除DBGrid中选中的多行
//如果字段和表名不全,则按普通表删除
//否则,根据所给信息,删除给定的表
var
i, j: Integer;
s: String;
q: TADOQuery;
begin
if not DBGrid.DataSource.DataSet.Active then Exit;
//如果没有给TableName,FieldName,则认为是表,直接删除
if (TableName = '') or (ViewFieldName = '') or
(TableFieldName = '') then begin
if DBGrid.SelectedRows.Count > 0 then
with DBGrid.DataSource.DataSet do
for i:= DBGrid.SelectedRows.Count - 1 downto 0 do
begin
GotoBook(pointer(DBGrid.SelectedRows.Items[i]));
Delete;
end;
Exit;
end;
//视图,需要给出表名和关键字段名
if DBGrid.SelectedRows.Count>0 then
with DBGrid.DataSource.DataSet do
for i:= DBGrid.SelectedRows.Count - 1 downto 0 do
begin
GotoBook(pointer(DBGrid.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
if Fields[j].FieldName = ViewFieldName then
s := s + ' or ' + TableFieldName + '=' + Fields[j].AsString;
end;
end;
if s = '' then
Exit;
s := RightStr(s, Length(s) - 4);//去掉' or '
s := 'delete from ' + TableName + ' where ' + s;
q := TADOQuery.Create(Application);
try
with q do begin
q.Connection := TCustomADODataSet(DBGrid.DataSource.DataSet).Connection;
q.SQL.Add(S);
q.ExecSQL;
end;
finally
q.Free;
end;
end;
//返回选中DBGrid指定的Field的Value
var i: Integer;
begin
if not Assigned(DBGrid.DataSource) then
raise Exception.Create('DataSource not Assigned!');
if not Assigned(DBGrid.DataSource.DataSet) then
raise Exception.Create('DataSet not Assigned!'); if DBGrid.SelectedRows.Count > 0 then
with DBGrid.DataSource.DataSet do
for i:= DBGrid.SelectedRows.Count - 1 downto 0 do begin
GotoBook(pointer(DBGrid.SelectedRows.Items[i]));
Result := Result + ',' +
DBGrid.DataSource.DataSet.FieldByName(FieldName).AsString;
end;
if Result <> '' then
Result := RightStr(Result, Length(Result) - 1);
end;