新手求ADO+ACCESS的读取、插入,修改,删除记录代码。

解决方案 »

  1.   

    检索字段值:function TPublicClass.DataComboBox(TableValue,
      FieldValue: String): TStrings;
    var
      RS : TStrings;
    begin
      RS := TStringList.Create;
      Result := RS;
      RS.Clear;
      Try
        with DataModuleFrm.LSB_ADOQuery do
        begin
          if Active then
            Active := False;
          SQL.Clear;
          SQL.Add('Select Distinct ' + FieldValue + ' from ' + TableValue);
          Open;
          if RecordCount = 0 then
            Exit;
          First;
        end;
        while Not DataModuleFrm.LSB_ADOQuery.Eof do
        begin
          RS.Add(Trim(DataModuleFrm.LSB_ADOQuery.FieldByName(FieldValue).AsString));
          DataModuleFrm.LSB_ADOQuery.Next;
        end;
      Except
        Application.MessageBox('对不起,数据操作错误','操作提示',MB_OK +
                                MB_ICONINFORMATION);
        Exit;
      end;
      Result := RS;
    end;{
    procedure TPublicClass.ExecSQL(Sender: TADOQuery; TableName,
      SQLStr: String);
    begin
      with Sender do
      begin
        if Active then
          Active := False;
        SQL.Clear;
        SQL.Add(SQLStr);
        ExecSQL;
        Close;
        SQL.Clear;
        SQL.Add('Select * From ' + TableName);
        Prepared;
        Open;
      end;
    end;插入function TPublicClass.InsertValue(var StrValue : String;TableNameValue: String;
      FieldList,FieldValue: array of String): Boolean;
    var
      AIndex : Integer;
      AStr : String;
    begin
      //..
      Result := True;
      if ( High(FieldList) - Low(FieldList)) <> (High(FieldValue) - Low(FieldValue)) then
      begin
        StrValue := '';
        Result := False;
        Exit;
      end;
      StrValue := 'Insert Into ' + TableNameValue + '(';
      AStr := ' Values(';
      For AIndex := Low(FieldList) to High(FieldList) do
      begin
        if AIndex <> High(FieldList) then
        begin
          StrValue := StrValue + FieldList[AIndex] + ' , ';
          AStr := AStr + #39 + FieldValue[AIndex] + #39 + ' , ';
        end else
        begin
          StrValue := StrValue + FieldList[AIndex] + ') ';
          AStr := AStr + #39 + FieldValue[AIndex] + #39 + ')';
        end;
      end;
      StrValue := StrValue + AStr;
    end;
    更新procedure TPublicClass.Update(var SQLStr: String; Sender: TEdit; TableName,
      FieldValue, Hint: String; QueryValue: TADOQuery; IDValue: Integer);
    begin
      if Trim(Sender.Text) = '' then
        begin
          Application.MessageBox(PChar('对不起,请填写' + Hint + '之后再进行添加操作')
            ,'操作提示',MB_OK + MB_ICONSTOP);
          Exit;
        end else
        begin
          if Not UpdateValue(SQLStr,TableName,IDValue,[FieldValue],[Sender.Text]) then
          begin
            Application.MessageBox('对不起,没有成的执行操作','操作提示',MB_OK +
              MB_ICONINFORMATION);
            Exit;
          end;
            ExecSQL(QueryValue,TableName,SQLStr);
        end;
    end;
    }删除procedure TPublicClass.Delete(var SQLStr: String; TableName, FieldValue : String;
      QueryValue: TADOQuery; IDValue: Integer);
    begin
      begin
        SQLStr := DeleteValue(TableName,IDValue);
        ExecSQL(QueryValue,TableName,SQLStr);
      end;
    end;----------------
    沉沦中..........
      

  2.   

    用AdoQuery,用Sql语句进行添加删除修改等操作,和却Query用法一样。