回 帖 发 新 帖 刷新版面

主题:使用batchmove,报数据表mytable_name的定义未找到!急,郁闷好久了

如题所示,当程序走到tblanswer.Batchmove(TQury控件,batCopy)就抱错,其中TQury控件把表matable_name里的记录查询出来,再把记录给tblanswer,但是就老告诉我 数据表mytable_name 没找到  郁闷啊 跟踪好久 快郁闷坏了 请教大家啊 万分谢谢

回复列表 (共10个回复)

沙发

各位大侠 拔刀相助啊  自己顶顶

板凳

讲的问题,不够,具体,帮不了,贴出代码吧.

3 楼

wealthy: 我的问题是这样的
 我要做一个汇总报表,是动态的。比如一张表“定义调整工资项目”表 这张表是定义调整的项目 如津贴调整 奖金调整  月薪调整 等等。 另一张表“人员调整工资”记录人员调整的的情况 如 (小李 月薪调整  2000元  )。

现在要动态做汇总  也就是说 “定义调整的项目” 是由用户定义的 不能在程序写死的 

“人员调整工资”表结构(人员姓名 工作部门 职务 调整工资项目名) 

我的程序是用Tquery从“人员调整工资”把 人员姓名  工作部门 职务 都取出来了 但是调整工资项目

名怎么取出来效果才能达到 人员姓名  工作部门 职务 月薪调整  奖金调整 津贴调整 交通费调整
                          小李      人事部   职员  2000    1000       0       200
                          小张      销售部   经理   4000    2000     300     500
                           ..
                           ..
                           ..
问题是当时设计表结构的时候没考虑全 但若改表结构很麻烦了  人员姓名  工作部门 职务 能从表“人员调整工资”取出来。 月薪调整  奖金调整 津贴调整 交通费调整 能从“定义调整的项目”取出来 但是当写SQL语句(from 表名)是没办法取出月薪调整  奖金调整 津贴调整 交通费调整 字段 ,因为这两张表的字段都没有叫月薪调整  奖金调整 津贴调整 交通费调整 的 。所以抱错。

现在想新加TTable把月薪调整  奖金调整 津贴调整 交通费调整 做为表table1的字段,但是我建立后 老报错 说表table1不存在  再想办法把各人员调整工资的值赋上
建表语句
Table1.TableName := MakeTemptablename;//给表赋名字 
  with table1 do
  begin
    with qrytmpqry do
      begin
        Close;
        SQL.Clear;
        SQL.add(' SELECT NAME ,DM');
        SQL.Add(' FROM xinjinTZ');
        Open;
        I := 0;
        while not EOF do
        begin
          Field[I] := TCurrencyField.Create(table1);
          Field[I].FieldName := qrytmpqry.FieldByName('DM').AsString;
          Field[I].Name := table1.Name + Field[I].FieldName;
          Field[I].Index := I;
          Field[I].DisplayLabel := qrytmpqry.FieldByName('NAME').AsString;
          Field[I].OnGetText := FldMoneyOnGetText;
          I := I + 1;
          next;
        end;
      end;
  Table1.Active := True;

谁有办法解决吗  急死了

4 楼

不用我这办法也行 有别的办法吗  就是表结构不想变了 若变动的话 还有别的程序还得改啊 好急咯

5 楼

请问大家怎么给一个表临时表在运行是设计它的表结构 从别的表中给他的字段赋值呢

6 楼

只能给你些提示,因为很难通过你的问题就能一下子解决问题,要经过测试代码:代码我就测试不了,一个字多.
我看了看下的问题:"问题是当时设计表结构的时候没考虑全 但若改表结构很麻烦了  人员姓名  工作部门 职务 能从表“人员调整工资”取出来。 月薪调整  奖金调整 津贴调整 交通费调整 能从“定义调整的项目”取出来 但是当写SQL语句(from 表名)是没办法取出月薪调整  奖金调整 津贴调整 交通费调整 字段 ,因为这两张表的字段都没有叫月薪调整  奖金调整 津贴调整 交通费调整 的 。所以抱错。"
两表中所需的字段,对应吗?虽然不叫"月薪调整  奖金调整 津贴调整 交通费调整",只要字段相同才可.
如字段相同,可通过Table1NAME.DisplayLabel来控制"月薪调整  奖金调整 津贴调整 交通费调整"显示.

多表查询可用select   sno,sname,ssex,   (select   score   from   学生课目成绩表   where   sno=a.sno   and   cno=01)   as   语文成绩,   (select   score   from   学生课目成绩表   where   sno=a.sno   and   cno=01)   as   数学成绩   from   学生表   a

可用“select   字段名   into   临时表   from   表名”建立临时表

7 楼

不如,你告诉我怎么在程序运行是 一个表怎么动态生成字段吧 而这个表的字段是 “定义调整的项目”表里字段“调整名”NAME char 的记录 也就是此字段的值作为新表的字段  谢谢 

定义调整的项目表结构如下 
  年月   NY int 
  人员id  RYID   char 
  调整Id  DM     char 
  调整名    NAME   char 
  人员姓名  PERSON_NAME   char 
  部门名    BM_NAME   char 
  职务      ZW        char 
  金额      E         money

另外那张表结构就 代码dm char,  调整名称 mc char 就两字段落

8 楼

动态生成表及增加字段,该数据库表的名称为FOO.DB,位于C:\TEMP目录下。
withTTable.Create(seft)do
begin
DatabaseName:='c:\Temp';
TableName:='FOO';
TableType:=ttParadox;
withFieldefsdo
begin
Add('Age',ftInteger,0,True);
Add('Name',ftString,25,False);
Add('Weight',ftFloat,0,False);
end;
IndexDefs.Add('','Age',[ixPrimary,ixUnique]);
CreateTable;
end;

TTable.Create()仅适用于本地表。对于SQL表,要使用TQuery组件

9 楼

试试这种方法,用动态的方法将两个表复制一备份(或临时表),再用动态修改字段的方法将两个表不同的字段而要求相同的字段,修改成相同的字段.

但要确保修改时数据记录不能丢失.

http://topic.csdn.net/t/20050216/16/3785830.html

10 楼

怎么我觉得大家没有理解我的意思呢
table1字段“水果”,而table2字段“苹果数” “梨数” “香蕉数” “西瓜数” 等等字段,这表的字段是由另外一个程序由客户自己定义的,所以事先不知道有哪些字段。录入程序实现记录一个人一个月内得到的水果数,但是我让用户以“水果名” “水果数” 这样的方式录入。所以拿table1字段“水果”里的值与table2哪些字段名本身来个比较的。后来把“水果名” “水果数”  “苹果数” “梨数” “香蕉数” “西瓜数” 等等字段都放到一个临时表里了,但是如何根据“水果名”而把相应的 “水果数” 放到 “苹果数” “梨数” “香蕉数” “西瓜数” 等里呢,越来越麻烦,好像不能实现。

我来回复

您尚未登录,请登录后再回复。点此登录或注册