powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поделитесь опытом связь клиентского ПО с СУБД
1 сообщений из 1, страница 1 из 1
Поделитесь опытом связь клиентского ПО с СУБД
    #32895757
_svs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем!
Хочется очень узнать кто какие методы использует для связи клиентского приложения с сервером БД (или с локальной).
Не важно какой язык используется и какая СУБД. Интересует сам подход.
Особенно интересно в свете ООП.
Как производится выборка данных? Как - операции сохранения, удаления, изменения? Как с данными в дальнейшем приложение работает? Если можно с примерами кода.
Для почину два варианта:
1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
type
  TSocStatus = class(TDBObj)
   private
    FIdSocStatus: integer;
    FSocStatus: string;
    procedure SetIdSocStatus(const Value: integer);
    procedure SetSocStatus(const Value: string);
   public
      constructor Create;
      destructor Destroy;override;
      class function GetSqlText:string; override;
      property IdSocStatus:integer read FIdSocStatus write SetIdSocStatus;
      property SocStatus:string read FSocStatus write SetSocStatus;
      procedure Open; override;
      procedure Delete; override;
      procedure Save; override;
  end;

  TListSocStatus = class(TDBList)
  private

  public
    constructor Create;
    destructor Destroy; override;
    class function GetSqlText:string; override;
    procedure Load;override;
  end;
..................................................................
class function TSocStatus.GetSqlText: string;
begin
 Result:=TListSocStatus.GetSqlText+' WHERE ID_SOCSTATUS=%d';
end;

procedure TSocStatus.Open;
var ds:TDataSet;
begin
 if Assigned(idll) then begin
       try
          ds:=idll.GetDataSet(Format(Self.GetSqlText,[FIdSocStatus]));
          ds.Open;
            Self.SocStatus := ds.FieldByName('NAME_SOCSTATUS').AsString;
            Self.IdSocStatus := ds.FieldByName('ID_SOCSTATUS').AsInteger;
            Self.IsNew:=false;
          ds.Close;
          ds.Free;
       except on e:Exception do begin
           ds.Free;
           raise;
        end;
       end;
 end;
end;

procedure TListSocStatus.Load;
var ds:TDataSet;
    ss:TSocStatus;
begin
 if Assigned(idll) then begin
       try
          ds:=idll.GetDataSet(Self.GetSqlText);
          ds.Open;
          Self.Clear;
          while not ds.Eof do begin
            ss:=TSocStatus.Create;
            ss.SocStatus := ds.FieldByName('NAME_SOCSTATUS').AsString;
            ss.IdSocStatus := ds.FieldByName('ID_SOCSTATUS').AsInteger;
            ss.IsNew:=false;
            Self.Add(ss);
            ds.Next;
          end;
          ds.Close;
          ds.Free;
       except on e:Exception do begin
           ds.Free;
           raise;
        end;
       end;
 end;
end;
...................................................................................
//из примеров VS.NET
2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
string strAccessConn = "Provider=MSDAORA.1;Password=***;User ID=dean;Data Source=iasudb";
      string strAccessSelect = "SELECT * FROM ADMIN.DEAN_SVS_GROUPS";

      // Create the dataset and add the Categories table to it:
      DataSet myDataSet = new DataSet();
      myDataSet.Tables.Add("ADMIN.DEAN_SVS_GROUPS");
      
      // Create Access objects:
      OleDbConnection myAccessConn = new OleDbConnection(strAccessConn);
      OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect,myAccessConn);
      OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);

      myAccessConn.Open();

      try
      {
         myDataAdapter.Fill(myDataSet,"ADMIN.DEAN_SVS_GROUPS");
      }
      finally
      {
         myAccessConn.Close();
      }

      try
      {
         DataTableCollection dta = myDataSet.Tables;
         foreach (DataTable dt in dta)
         {
            Console.WriteLine("Found data table {0}", dt.TableName);
         }
         Console.WriteLine("{0} tables in data set", myDataSet.Tables.Count);
         Console.WriteLine("{0} tables in data set", dta.Count);
         Console.WriteLine("{0} rows in Categories table", myDataSet.Tables["ADMIN.DEAN_SVS_GROUPS"].Rows.Count);
         Console.WriteLine("{0} columns in Categories table", myDataSet.Tables["ADMIN.DEAN_SVS_GROUPS"].Columns.Count);
         DataColumnCollection drc = myDataSet.Tables["ADMIN.DEAN_SVS_GROUPS"].Columns;
         int i =  0 ;
         foreach (DataColumn dc in drc)
         {
            Console.WriteLine("Column name[{0}] is {1}, of type {2}",i++ , dc.ColumnName, dc.DataType);
         }
         DataRowCollection dra = myDataSet.Tables["ADMIN.DEAN_SVS_GROUPS"].Rows;
         foreach (DataRow dr in dra)
         {
            Console.WriteLine("CategoryName[{0}] is {1}", dr[ 0 ], dr[ 9 ]);
         }
      }
      catch (Exception e)
      {
         Console.WriteLine("Oooops.  Caught an exception:\n{0}", e.Message);
      }
   }

Мнения? Коментарии?
С уважением _svs
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поделитесь опытом связь клиентского ПО с СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]