你在临时表中增加一个字段用来记录用户信息(如用户姓名或用户ID),进入系统时
不要清空数据,只删除与用户信息(用户姓名或用户ID)对应的数据就行了。你在对数据进行操作时只要在SQL中加一个条件 用户姓名或ID=登录时的姓名或ID,这样多个用户就可以同时使用一个临时表,而没用数据上的冲突

解决方案 »

  1.   

    kesa(凯萨) 
    不错,好主意!我同意
      

  2.   

    增加一个用户Cookie来帮助检查
      

  3.   

    可以使用视图技术,试图的名称可以和具体操作用户的ID号联系起来,用户操作完毕之后,就把视图删除,创建视图可以通过存储过程来实现,输入参数为用户ID,然后返回该用户所创建视图的视图名,以便后面的操作
      

  4.   

    像yangkunjie(杨七郎)(dephi--c#)说的
    我觉得用储存过程这个方法不错啊!
      

  5.   

    数据导出到SQL语句中,再慢慢改
    var fSQL:textfile;
        i:integer;
        strFields:string;
        strTableName:string;
    begin
    assignfile(fSQL,'C:\saveSQL.SQL');
    rewrite(fSQL);strTableName:='WpKC';  //表明
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('SELECT * FROM '+strTableName);
    Query1.open;
    if Query1.RecordCount >0 then
    begin
      strFields:='';
      for i:=1 to Query1.FieldCount-1 do                  { 写入字段名,可省略 }
        strFields:=strFields+Query1.Fields.FieldByNumber(i).FieldName+',';
      strFields:=strFields+Query1.Fields.FieldByNumber(Query1.FieldCount).FieldName;
      Query1.First;
      repeat
        write(fSQL,'insert into '+strTableName+'('+strFields+ ') Values(');
        for i:=1 to Query1.FieldCount-1 do
          write(fSQL,''''+Query1.Fields.FieldByNumber(i).AsString+''',');
        write(fSQL,''''+Query1.Fields.FieldByNumber(Query1.FieldCount).AsString+''')');
        Writeln(fSQL);
        Query1.Next;
      until Query1.Eof ;
      Closefile(FSql);end;
    end;