[LinuxFocus-icon]
<--  | äÏÍÏÊ  | ëÁÒÔÁ  | éÎÄÅËÓ  | ðÏÉÓË

îÏ×ÏÓÔÉ | áÒÈÉ×Ù | óÓÙÌËÉ | ðÒÏ LF
[an error occurred while processing this directive]
[Photo of the Author]
Á×ÔÏÒ Bob Smith
<bob/at/linuxtoys.org>

ï Á×ÔÏÒÅ:

Bob Ñ×ÌÑÅÔÓÑ ìÉÎÕËÓ-ÐÒÏÇÒÁÍÍÉÓÔÏÍ É ÒÁÄÉÏÌÀÂÉÔÅÌÅÍ. ÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÅÇÏ ÐÏÓÌÅÄÎÉÊ ÐÒÏÅËÔ ÎÁ www.runtimeaccess.com É ÅÇÏ ÄÏÍÁÛÎÀÀ ÓÔÒÁÎÉÃÕ ÎÁ www.linuxtoys.org.



ðÅÒÅ×ÏÄ ÎÁ òÕÓÓËÉÊ:
Peter Demidov <p_demidov/at/rambler.ru>

óÏÄÅÒÖÁÎÉÅ:

 

òÁÚÇÏ×ÁÒÉ×ÁÑ Ó ÒÁÂÏÔÁÀÝÉÍ ÐÒÏÃÅÓÓÏÍ

Run Time Access

òÅÚÀÍÅ:

Run Time Access - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ, ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÓÍÏÔÒÅÔØ ÓÔÒÕËÔÕÒÙ ÄÁÎÎÙÈ × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ ËÁË ÔÁÂÌÉÃÙ ÂÁÚÙ ÄÁÎÎÙÈ PosgreSQL ÉÌÉ ËÁË ÆÁÊÌÙ × ×ÉÒÔÕÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ (ÔÁËÏÊ ÖÅ, ÞÔÏ É /proc). éÓÐÏÌØÚÏ×ÁÎÉÅ RTA ÕÐÒÏÝÁÅÔ ×ÙÄÁÞÕ ×ÁÛÅÍÕ ÄÅÍÏÎÕ ÉÌÉ ÓÅÒ×ÉÓÕ ÎÅËÏÔÏÒÙÈ ÔÉÐÏ× ÕÐÒÁ×ÌÑÀÝÉÈ ÉÎÔÅÒÆÅÊÓÏ×, ÔÁËÉÈ, ËÁË web, shell, SNMP, ÉÌÉ framebuffer.

_________________ _________________ _________________

 

äÅÓÑÔÉÓÅËÕÎÄÎÙÊ ÏÂÚÏÒ

óËÁÖÅÍ, Õ ×ÁÓ ÅÓÔØ ÐÒÏÇÒÁÍÍÁ Ó ÄÁÎÎÙÍÉ × ÍÁÓÓÉ×Å ÓÔÒÕËÔÕÒ. óÔÒÕËÔÕÒÁ É ÍÁÓÓÉ× ÏÂßÑ×ÌÅÎÙ ÔÁË:
struct mydata {
    char   note[20];
    int    count;
}

struct mydata mytable[] = {
  { "Sticky note", 100 },
  { "Music note", 200 },
  { "No note", 300 },
};

åÓÌÉ ×Ù ÓÏÚÄÁÅÔÅ Ó×ÏÀ ÐÒÏÇÒÁÍÍÕ Ó ÂÉÂÌÉÏÔÅËÏÊ Run Time Access, ×Ù ÓÍÏÖÅÔÅ ÐÒÏ×ÅÒÑÔØ É ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ×ÎÕÔÒÅÎÎÉÅ ÄÁÎÎÙÅ ÐÒÏÇÒÁÍÍÙ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÉÌÉ ÉÚ ÄÒÕÇÏÊ ÐÒÏÇÒÁÍÍÙ. ÷ÁÛÉ ÄÁÎÎÙÅ ÂÕÄÕÔ ×ÙÇÌÑÄÅÔØ ÔÁË, ËÁË ÅÓÌÉ ÂÙ ÏÎÉ ÂÙÌÉ × ÂÁÚÅ ÄÁÎÎÙÈ PostgreSQL. óÌÅÄÕÀÝÅÅ ÉÌÌÀÓÔÒÉÒÕÅÔ ÔÏ, ËÁË ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ Bash É psql, ÉÎÓÔÒÕÍÅÎÔ PostgreSQL ÄÌÑ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÞÔÏÂÙ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ É ÞÉÔÁÔØ ÄÁÎÎÙÅ × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ.

# myprogram  &

# psql -c "UPDATE mytable SET note = 'A note' LIMIT 1"
UPDATE 1

# psql -c "SELECT * FROM mytable"
   note     | count
------------+-------
 A note     | 100
 Music note | 200
 No note    | 300
#

üÔÁ ÓÔÁÔØÑ ÏÂßÑÓÎÑÅÔ ÚÁÞÅÍ RTA ÎÕÖÎÁ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ RTA É ËÁËÉÅ ÐÒÅÉÍÕÝÅÓÔ×Á ×Ù ÍÏÖÅÔÅ ÏÖÉÄÁÔØ ÏÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ RTA.

 

 

íÎÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× -- ÏÄÉÎ ÓÅÒ×ÉÓ

ôÒÁÄÉÃÉÏÎÎÙÊ UNIX ÓÏÏÂÝÅÎ Ó ÓÅÒ×ÉÓÏÍ ÐÏÓÒÅÄÓÔ×ÏÍ ÐÏÍÅÝÅÎÉÑ ÅÇÏ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÄÁÎÎÙÈ × /etc/application.conf, Á ÅÇÏ ÁËËÕÍÕÌÉÒÏ×ÁÎÎÏÇÏ ×Ù×ÏÄÁ - × /var/log/application.log. üÔÏÔ ÐÒÉÎÑÔÙÊ ÐÏÄÈÏÄ, ×ÅÒÏÑÔÎÏ, ÎÅÐÒÁ×ÉÌØÎÙÊ ÄÌÑ ÓÅÇÏÄÎÑÛÎÉÈ ÓÅÒ×ÉÓÏ×, ËÏÔÏÒÙÅ ÒÁÂÏÔÁÀÔ ÎÁ ÏÂÏÒÕÄÏ×ÁÎÉÉ É ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎÙ ÏÔÎÏÓÉÔÅÌØÎÏ ÎÅÐÏÄÇÏÔÏ×ÌÅÎÎÙÍ ÓÉÓÁÄÍÉÎÏÍ. ôÒÁÄÉÃÉÏÎÎÙÊ ÐÏÄÈÏÄ ÔÅÒÐÉÔ ÎÅÕÄÁÞÕ, ÐÏÔÏÍÕ ÞÔÏ ÔÅÐÅÒØ ÎÁÍ ÎÕÖÎÙ ÎÅÓËÏÌØËÏ ÔÉÐÏ× ÏÄÎÏ×ÒÅÍÅÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ×, É ÍÙ ÈÏÔÉÍ ÞÅÒÅÚ ËÁÖÄÙÊ ÉÚ ÜÔÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÏÂÍÅÎÉ×ÁÔØÓÑ ËÏÎÆÉÇÕÒÁÃÉÅÊ, ÓÏÓÔÏÑÎÉÅÍ É ÓÔÁÔÉÓÔÉËÏÊ Ó ÓÅÒ×ÉÓÏÍ ×Ï ×ÒÅÍÑ ÅÇÏ ÒÁÂÏÔÙ. ôÏ ÞÔÏ ÎÅÏÂÈÏÄÉÍÏ - ÜÔÏ ÄÏÓÔÕÐ ×Ï ×ÒÅÍÑ ÉÓÐÏÌÎÅÎÉÑ.

îÏ×ÅÊÛÉÅ ÓÅÒ×ÉÓÙ ÎÕÖÄÁÀÔÓÑ ×Ï ÍÎÏÇÉÈ ÔÉÐÁÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× É ÍÙ - ÒÁÚÒÁÂÏÔÞÉËÉ - ÎÅ × ÓÏÓÔÏÑÎÉÉ ÐÒÅÄÓËÁÚÁÔØ ËÁËÏÊ ÉÎÔÅÒÆÅÊÓ ÂÕÄÅÔ ÓÁÍÙÍ ÎÅÏÂÈÏÄÉÍÙÍ. þÔÏ ÎÁÍ ÎÕÖÎÏ ÓÄÅÌÁÔØ - ÜÔÏ ÏÔÄÅÌÉÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÏÔ ÓÅÒ×ÉÓÁ, ÉÓÐÏÌØÚÕÑ ÏÂÝÉÊ ÐÒÏÔÏËÏÌ, É ÓÏÚÄÁÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÉÓÐÏÌØÚÕÑ ÏÂÛÉÊ ÐÒÏÔÏËÏÌ. üÔÏ ÏÂÌÅÇÞÁÅÔ ÄÏÂÁ×ÌÅÎÉÅ ÉÎÔÅÒÆÅÊÓÏ× ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ, É ÒÁÚÄÅÌÅÎÉÅ ÍÏÖÅÔ ÏÂÌÅÇÞÉÔØ ÔÅÓÔÉÒÏ×ÁÎÉÅ, ÔÁË ËÁË ËÁÖÄÙÊ ËÕÓÏË ÍÏÖÅÔ ÂÙÔØ ÐÒÏ×ÅÒÅÎ ÎÅÚÁ×ÉÓÉÍÏ. îÁÍ ÎÕÖÎÁ ÁÒÈÉÔÅËÔÕÒÁ ÎÁÐÏÄÏÂÉÅ ÜÔÏÊ:

One service -- many interfaces

ôÉÐÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ×ËÌÀÞÁÀÔ web, ËÏÍÁÎÄÎÕÀ ÓÔÒÏËÕ, framebuffer, SNMP, ËÌÁ×ÉÁÔÕÒÕ É LCD, LDAP, ÒÏÄÎÏÊ Windows, É ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ ÐÏ ×ÙÂÏÒÕ. îÅÓÏÍÎÅÎÎÏ ÏÂÝÉÊ API É ÐÒÏÔÏËÏÌ ÄÌÑ ×ÓÅÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÂÙÌ ÂÙ ÈÏÒÏÛÅÊ ÉÄÅÅÊ. îÏ ËÁËÏÊ API É ÐÒÏÔÏËÏÌ?

 

 

éÎÔÅÒÆÅÊÓ ÂÁÚÙ ÄÁÎÎÙÈ

RTA ×ÙÂÉÒÁÅÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÂÁÚÕ ÄÁÎÎÙÈ PostgreSQL ËÁË ÏÂÝÉÊ API É ÐÒÏÔÏËÏÌ. ëÏÎÆÉÇÕÒÁÃÉÑ, ÓÏÓÔÏÑÎÉÅ É ÓÔÁÔÉÓÔÉËÁ ÐÏÍÅÝÅÎÙ × ÍÁÓÓÉ×Ù ÓÔÒÕËÔÕÒ, ËÏÔÏÒÙÅ ÐÒÅÄÓÔÁÀÔ × API, ËÁË ÔÁÂÌÉÃÙ × âä PostgreSQL. ðÒÏÇÒÁÍÍÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÎÁÐÉÓÁÎÙ, ËÁË ËÌÉÅÎÔÙ, ÐÏÄËÌÀÞÁÀÝÉÅÓÑ Ë âä PostgreSQL. üÔÏÔ ÐÏÄÈÏÄ ÉÍÅÅÔ Ä×Á ÂÏÌØÛÉÈ ÐÒÅÉÍÕÝÅÓÔ×Á:

âÉÂÌÉÏÔÅËÁ RTA - ÜÔÏ ËÌÅÊ, ËÏÔÏÒÙÊ ÓÏÅÄÉÎÑÅÔ ÎÁÛÉ ÍÁÓÓÉ×Ù ÉÌÉ Ó×ÑÚÎÙÅ ÓÐÉÓËÉ ÓÔÒÕËÔÕÒ ÄÁÎÎÙÈ Ó ËÌÉÅÎÔÁÍÉ PostgreSQL. áÒÈÉÔÅËÔÕÒÁ ÐÒÉÌÏÖÅÎÉÑ, ÉÓÐÏÌØÚÕÀÝÅÇÏ RTA ÄÏÌÖÎÁ ×ÙÇÌÑÄÅÔØ ËÁË-ÎÉÂÕÄØ ÔÁË:

RTA Application Architecture

úÄÅÓØ ÍÙ ÎÁÚÙ×ÁÅÍ ÜÔÏ management interface, ÔÁË ËÁË ÏÎ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÓÏÓÔÏÑÎÉÑ, ÓÔÁÔÉÓÔÉËÉ É ËÏÎÆÉÇÕÒÁÃÉÉ. îÅÓÍÏÔÒÑ ÎÁ ÔÏ, ÞÔÏ ÐÏËÁÚÁÎ ÔÏÌØËÏ ÏÄÉÎ ÉÎÔÅÒÆÅÊÓ, ×Ù ÄÏÌÖÎÙ ÐÏÍÎÉÔØ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÉÍÅÔØ ÍÎÏÇÏ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ, É ÏÎÉ ×ÓÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÍÏÇÕÔ ÉÍÅÔØ ÄÏÓÔÕÐ Ë ÐÒÉÌÏÖÅÎÉÀ.

PostgreSQL ÉÓÐÏÌØÚÕÅÔ TCP × ËÁÞÅÓÔ×Å ÔÒÁÎÓÐÏÒÔÎÏÇÏ ÐÒÏÔÏËÏÌÁ, ÐÏÜÔÏÉÕ ÎÅÏÂÈÏÄÉÍÏ, ÞÔÏÂÙ ×ÁÛÅ ÐÒÉÌÏÖÅÎÉÅ ÍÏÇÌÏ Ó×ÑÚÙ×ÁÔØÓÑ Ó TCP ÐÏÒÔÏÍ É ÐÒÉÎÉÍÁÔØ ÓÏÅÄÉÎÅÎÉÑ ÏÔ ÒÁÚÌÉÞÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ×. ÷ÓÅ ÂÁÊÔÙ, ÐÏÌÕÞÅÎÎÙÅ ÏÔ ÐÒÉÎÑÔÏÇÏ ÓÏÅÄÉÎÅÎÉÑ ÐÅÒÅÄÁÀÔÓÑ × RTA ÐÒÉ ÐÏÍÏÝÉ ÐÏÄÐÒÏÇÒÁÍÍÙ dbcommand(). ìÀÂÙÅ ÄÁÎÎÙÅ, ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÅ ÄÌÑ ×ÏÚ×ÒÁÔÁ ËÌÉÅÎÔÕ, ÎÁÈÏÄÑÔÓÑ × ÂÕÆÅÒÅ, ×ÏÚ×ÒÁÝÁÅÍÏÍ ÉÚ dbcommand().

ëÁË RTA ÕÚÎÁÅÔ, ËÁËÉÅ ÔÁÂÌÉÃÙ ÄÏÓÔÕÐÎÙ? ÷Ù ÄÏÌÖÎÙ ÓËÁÚÁÔØ ÅÊ.

 

 

ïÐÒÅÄÅÌÅÎÉÅ ÔÁÂÌÉÃ

÷Ù ÇÏ×ÏÒÉÔÅ RTA Ï ×ÁÛÉÈ ÔÁÂÌÉÃÁÈ ÓÏ ÓÔÒÕËÔÕÒÁÍÉ ÄÁÎÎÙÈ ×ÙÚÏ×ÏÍ ÐÏÄÐÒÏÇÒÁÍÍÙ rta_add_table(). óÒÕËÔÕÒÁ TBLDEF ÏÐÉÓÙ×ÁÅÔ ÔÁÂÌÉÃÕ, Á ÓÔÒÕËÔÕÒÁ COLDEF ÏÐÉÓÙ×ÁÅÔ ÓÔÏÌÂÅÃ. ÷ÏÔ ÐÒÉÍÅÒ, ËÏÔÏÒÙÊ ÐÏËÁÚÙ×ÁÅÔ ËÁË ÄÏÂÁ×ÉÔØ ÔÁÂÌÉÃÕ Ë ÉÎÔÅÒÆÅÊÓÕ RTA.

óËÁÖÅÍ Õ ×ÁÓ ÅÓÔØ ÓÔÒÕËÔÕÒÁ ÓÏ ÓÔÒÏËÏÊ ÄÌÉÎÙ 20 É ÃÅÌÙÍ, É ×Ù ÈÏÔÉÔÅ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ÔÁÂÌÉÃÕ Ó ÐÑÔØÀ ÔÁËÉÍÉ ÓÔÒÕËÔÕÒÁÍÉ. ÷Ù ÍÏÖÅÔÅ ÏÐÒÅÄÅÌÉÔØ ÓÔÒÕËÔÕÒÙ É ÔÁÂÌÉÃÕ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ:

    struct myrow {
        char    note[20];
        int     count;
    };

    struct myrow mytable[5];

ëÁÖÄÏÅ ÐÏÌÅ ÓÔÒÕËÔÕÒÙ myrow Ñ×ÌÑÅÔÓÑ ÓÔÏÌÂÃÏÍ × ÔÁÂÌÉÃÅ ÂÁÚÙ ÄÁÎÎÙÈ. îÁÍ ÎÅÏÂÈÏÄÉÍÏ ÓÏÏÂÝÉÔØ RTA ÉÍÑ ÓÔÏÌÂÃÁ, × ËÁËÏÊ ÔÁÂÌÉÃÅ ÏÎ ÎÁÈÏÄÉÔÓÑ, ÅÇÏ ÔÉÐ ÄÁÎÎÙÈ, ÅÇÏ ÓÍÅÝÅÎÉÅ ÏÔ ÎÁÞÁÌÁ ÓÔÒÏËÉ É ÚÁÝÉÝÅÎ ÌÉ ÏÎ ÏÔ ÚÁÐÉÓÉ. íÙ ÔÁËÖÅ ÍÏÖÅÍ ÏÐÒÅÄÅÌÉÔØ callback-ÐÏÄÐÒÏÇÒÁÍÍÙ, ×ÙÚÙ×ÁÅÍÙÅ ÐÅÒÅÄ ÞÔÅÎÉÅÍ ÓÔÏÌÂÃÁ É/ÉÌÉ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÏÎ ÚÁÐÉÓÁÎ. äÌÑ ÎÁÛÅÇÏ ÐÒÉÍÅÒÁ ÍÙ ÂÕÄÅÍ ÐÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ count ÄÏÓÔÕÐÅÎ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ É ÞÔÏ ÍÙ ÈÏÔÉÍ, ÞÔÏÂÙ do_note() ×ÙÚÙ×ÁÌÁÓØ ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ ÚÁÐÉÓØ × ÐÏÌÅ note. íÙ ÓÏÚÄÁÅÍ ÍÁÓÓÉ× ÉÚ COLDEF, ËÏÔÏÒÙÊ ÄÏÂÁ×ÌÅÎ × TBLDEF, É ÉÍÅÅÔ ÐÏ ÏÄÎÏÊ COLDEF ÄÌÑ ËÁÖÄÏÇÏ ÞÌÅÎÁ ÓÔÒÕËÔÕÒÙ.

    COLDEF mycols[] = {
        {
            "atable",          // table name for SQL
            "note",            // column name for SQL
            RTA_STR,           // data type of column/field
            20,                // width of column in bytes
            0,                 // offset from start of row
            0,                 // bitwise OR of boolean flags
            (void (*)()) 0,    // called before read
            do_note(),         // called after write
            "The last field of a column definition is a string "
            "to describe the column.  You might want to explain "
            "what the data in the column means and how it is "
            "used."},
        {
            "atable",          // table name for SQL
            "count",           // column name for SQL
            RTA_INT,           // data type of column/field
            sizeof(int),       // width of column in bytes
            offsetof(myrow, count),  // offset from start of row
            RTA_READONLY,      // bitwise OR of boolean flags
            (void (*)()) 0,    // called before read
            (void (*)()) 0,    // called after write
            "If your tables are the interface between the user "
            "interfaces and the service, then the comments in "
            "column and table definitions form the functional "
            "specification for your project and may be the best "
            "documentation available to the developers."
    };

Callback-ÆÕÎËÃÉÉ ÍÏÇÕÔ ÂÙÔØ ÎÁÓÔÏÑÝÉÍ Ä×ÉÇÁÔÅÌÅÍ, ×ÅÄÕÝÉÍ ×ÁÛÅ ÐÒÉÌÏÖÅÎÉÅ. ÷Ù ÍÏÖÅÔÅ ÚÁÈÏÔÅÔØ ×ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ × ÔÒÉÇÇÅÒ ÔÁÂÌÉÃÙ ÂÅÚ ÉÚÍÅÎÅÎÉÑ ÉÌÉ ÐÅÒÅËÏÎÆÉÇÕÒÁÃÉÉ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ.

÷Ù ÓÏÏÂÝÁÅÔÅ RTA Ï ÔÁÂÌÉÃÁÈ ÐÕÔÅÍ ÐÅÒÅÄÁÞÉ ÅÊ ÉÍÅÎÉ ÔÁÂÌÉÃÙ, ÄÌÉÎÙ ËÁÖÄÏÊ ÓÔÒÏËÉ, ÍÁÓÓÉ× ÓÔÒÕËÔÕÒ COLDEFS ÄÌÑ ÏÐÉÓÁÎÉÑ ÓÔÏÌÂÃÏ×, ÞÉÓÌÏ ÓÔÏÌÂÃÏ×, ÉÍÑ save-ÆÁÊÌÁ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ ÎÅËÏÔÏÒÙÅ ÓÔÏÌÂÃÙ ÂÙÌÉ ÎÅÉÚÍÅÑÅÍÙ, É ÓÔÒÏËÁ ÄÌÑ ÏÐÉÓÁÎÉÑ ÔÁÂÌÉÃÙ. åÓÌÉ ÔÁÂÌÉÃÁ Ñ×ÌÑÅÔÓÑ ÓÔÁÔÉÞÅÓËÉÍ ÍÁÓÓÉ×ÏÍ ÓÔÒÕËÔÕÒ, ×Ù ÄÁÅÔÅ ÎÁÞÁÌØÎÙÊ ÁÄÒÅÓ É ÞÉÓÌÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ. åÓÌÉ ÔÁÂÌÉÃÁ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ Ó×ÑÚÎÙÊ ÓÐÉÓÏË, ×Ù ÄÁÅÔÅ RTA ÐÒÏÇÒÁÍÍÕ, ÞÔÏÂÙ ÐÏ×ÔÏÒÑÔØ ÅÅ ×ÙÚÏ× ÏÔ ÏÄÎÏÊ ÓÔÒÏËÉ Ë ÓÌÅÄÕÀÝÅÊ.

TBLDEF   mytableDef = {
      "atable",                 // table name
      mytable,                  // address of table
      sizeof(myrow),            // length of each row
      5,                        // number of rows
      (void *) NULL,            // iterator function
      (void *) NULL,            // iterator callback data
      mycols,                   // Column definitions
      sizeof(mycols / sizeof(COLDEF), // # columns
      "",                       // save file name
      "A complete description of the table."
};

ëÏÎÅÞÎÏ, ×Ù ÚÁÈÏÔÉÔÅ, ÞÔÏÂÙ ÉÍÑ ÔÁÂÌÉÃÙ, ×ÉÄÉÍÏÊ SQL, ÂÙÌÏ ÔÁËÉÍ ÖÅ, ÞÔÏ É ÅÅ ÉÍÑ × ÐÒÏÇÒÁÍÍÅ. ðÒÉÍÅÒ ÐÅÒÅËÌÀÞÉÌ ÉÚ mytable × atable ÔÏÌØËÏ ÞÔÏÂÙ ÐÏËÁÚÁÔØ, ÞÔÏ ÉÍÅÎÁ ÎÅ ÄÏÌÖÎÙ ÂÙÔØ ÏÄÉÎÁËÏ×ÙÍÉ.

éÍÅÑ ×ÅÓØ ×ÙÛÅÕËÁÚÁÎÎÙÊ ËÏÄ, ×Ù ÔÅÐÅÒØ ÍÏÖÅÔÅ ÓÏÏÂÝÉÔØ RTA Ï ×ÁÛÅÊ ÔÁÂÌÉÃÅ.

    rta_add_table(&mytableDef);

üÔÏ ×ÓÅ. þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ RTA ×ÁÍ ÎÁÄÏ ÎÁÕÞÉÔØÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ Ä×Å ÓÔÒÕËÔÕÒÙ (COLDEFS É TBLDEF) É Ä×Å ÐÏÄÐÒÏÇÒÁÍÍÙ (dbcommand() É rta_add_table()).

÷ÙÛÅÕËÁÚÁÎÎÙÊ ËÏÄ ÐÒÉ×ÅÄÅÎ, ÞÔÏÂÙ ÄÁÔØ ×ÁÍ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ Ï ÔÏÍ, ËÁË ÒÁÂÏÔÁÅÔ RTA. üÔÏ ÎÅ ÐÏÌÎÏÅ ÒÕËÏ×ÏÄÓÔ×Ï ÉÌÉ ÐÏÌÎÏÓÔØÀ ÒÁÂÏÞÉÊ ÐÒÉÍÅÒ. ðÏÌÎÙÊ ÒÁÂÏÞÉÊ ÐÒÉÍÅÒ, ÐÏÌÎÏÅ ÏÐÉÓÁÎÉÅ RTA API É ÓÔÒÕËÔÕÒ ÄÁÎÎÙÈ ÎÁÈÏÄÉÔÓÑ ÎÁ ÓÁÊÔÅ RTA (www.runtimeaccess.com).

ëÁË ÔÏÌØËÏ ×Ù ÏÐÒÅÄÅÌÉÌÉ ÔÁÂÌÉÃÙ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ×ÁÛÅÍ ÐÒÉÌÏÖÅÎÉÉ, RTA ÏÐÒÅÄÅÌÑÅÔ ÎÁÂÏÒ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ. ä×Å ÓÁÍÙÅ ÉÎÔÅÒÅÓÎÙÅ ÉÚ ÎÉÈ - ÜÔÏ rta_tables É rta_columns, ËÏÔÏÒÙÅ, ËÏÎÅÞÎÏ, Ñ×ÌÑÀÔÓÑ ÔÁÂÌÉÃÁÍÉ ÄÌÑ ÐÒÏÓÍÏÔÒÁ É ÏÐÉÓÁÎÉÑ ×ÓÅÈ ÔÁÂÌÉÃ É ÓÔÏÌÂÃÏ×, ÏÐÒÅÄÅÌÅÎÎÙÈ ×ÁÍÉ. üÔÏ ÔÁË ÎÁÚÙ×ÁÅÍÙÅ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ. óÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ ÄÅÌÁÀÔ ÔÏ ÖÅ, ÞÔÏ ls ÄÅÌÁÅÔ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ É getnext() ÄÅÌÁÅÔ ÄÌÑ SNMP.

 

 

ôÁÂÌÉÞÎÙÊ ÒÅÄÁËÔÏÒ

ïÄÎÏÊ ÉÚ ÕÔÉÌÉÔ, ÐÏÓÔÁ×ÌÑÅÍÏÊ Ó RTA Ñ×ÌÑÅÔÓÑ ÍÁÌÅÎØËÁÑ PHP-ÐÒÏÇÒÁÍÍÁ, ÉÓÐÏÌØÚÕÀÝÁÑ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ ÄÌÑ ÐÒÏÓÍÏÔÒÁ ×ÁÛÉÈ RTA-ÔÁÂÌÉÃ × ÏËÎÅ web-ÂÒÁÕÚÅÒÁ. éÍÅÎÁ ÔÁÂÌÉà ÐÒÅÄÓÔÁ×ÌÅÎÙ ÓÓÙÌËÁÍÉ, É ÎÁÖÁÔÉÅ ÎÁ ÉÍÑ ÔÁÂÌÉÃÙ ÏÔÏÂÒÁÖÁÅÔ ÐÅÒ×ÙÅ 20 ÓÔÒÏË ÜÔÏÊ ÔÁÂÌÉÃÙ. åÓÌÉ × ÔÁÂÌÉÃÅ ÅÓÔØ ÒÅÄÁËÔÉÒÕÅÍÙÅ ÐÏÌÑ, ×Ù ÍÏÖÅÔÅ ËÌÉËÎÕÔØ ÎÁ ÓÔÒÏËÅ, ÞÔÏÂÙ ÏÔËÒÙÔØ ÏËÎÏ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÄÌÑ ÜÔÏÊ ÓÔÒÏËÉ. ÷ÓÅ ÜÔÏ ÓÄÅÌÁÎÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÏÐÉÓÁÔÅÌÅÊ ÔÁÂÌÉÃ É ÓÔÏÌÂÃÏ×, ÎÁÊÄÅÎÎÙÈ × ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃÁÈ. ðÏÔÏË ÄÁÎÎÙÈ ÉÚÏÂÒÁÖÅÎ ÎÁ ÓÌÅÄÕÀÝÅÊ ÄÉÁÇÒÁÍÍÅ:

Generic Table Editor

ëÏÎÅÞÎÙÊ ×ÉÄ ÜËÒÁÎÁ ÔÁÂÌÉÞÎÏÇÏ ÒÅÄÁËÔÏÒÁ ÄÌÑ ÛÁÂÌÏÎÎÏÇÏ ÐÒÉÌÏÖÅÎÉÑ RTA ÐÏËÁÚÁÎ ÎÉÖÅ.

òÅÄÁËÔÏÒ ÔÁÂÌÉÃ RTA

éÍÑ ÔÁÂÌÉÃÙïÐÉÓÁÎÉÅ
rta_tables ôÁÂÌÉÃÁ ×ÓÅÈ ÔÁÂÌÉÃ × ÓÉÓÔÅÍÅ. üÔÏ ÐÓÅ×ÄÏÔÁÂÌÉÃÁ, Á ÎÅ ÍÁÓÓÉ× ÓÔÒÕËÔÕÒ, ËÁË ÄÒÕÇÉÅ ÔÁÂÌÉÃÙ.
rta_columns óÐÉÓÏË ÓÔÏÌÂÃÏ× ×ÓÅÈ ÔÁÂÌÉà ×ÍÅÓÔÅ Ó ÉÈ ÁÔÒÉÂÕÔÁÍÉ.
pg_user ôÁÂÌÉÃÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Postgres. íÙ ÏÂÍÁÎÙ×ÁÅÍ ÜÔÕ ÔÁÂÌÉÃÕ ÔÁË, ÞÔÏÂÙ ÌÀÂÏÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ × WHERE-ÓÔÁÔØÅ ÐÏÑ×ÌÑÅÔÓÑ × ÔÁÂÌÉÃÅ ËÁË ÚÁËÏÎÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ ÂÅÚ super, createDB, trace ÉÌÉ catupd ×ÏÚÍÏÖÎÏÓÔÅÊ.
rta_dbg ëÏÎÆÉÇÕÒÁÃÉÑ ×ÅÄÅÎÉÑ ÏÔÌÁÄÏÞÎÏÇÏ ÖÕÒÎÁÌÁ. Callback × ÐÏÌÅ 'target' ÚÁËÒÙ×ÁÅÔ É ÐÅÒÅÚÁÐÕÓËÁÅÔ syslog(). îÉ ÏÄÎÏ ÚÎÁÞÅÎÉÅ × ÜÔÏÊ ÔÁÂÌÉÃÅ ÎÅ ÚÁÐÉÓÙ×ÁÅÔÓÑ ÎÁ ÄÉÓË. åÓÌÉ ×ÁÍ ÎÕÖÎÙ ÚÎÁÞÅÎÉÑ ÎÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ×ÁÍ ÎÁÄÏ ÉÚÍÅÎÉÔØ ÉÓÈÏÄÎÉË rta ÉÌÉ ×ÙÐÏÌÎÉÔØ SQL_string(), ÞÔÏÂÙ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÑ ÐÒÉ ÉÎÉÃÉÁÌÉÝÁÃÉÉ ×ÁÍÉ ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÙ.
rta_stat óÞÅÔÞÉËÉ ÉÓÐÏÌØÚÏ×ÁÎÉÑ É ÏÛÉÂÏË ÄÌÑ ÐÁËÅÔÁ rta.
mytable ûÁÂÌÏÎÎÁÑ ÔÁÂÌÉÃÁ ÐÒÉÌÏÖÅÎÉÑ
UIConns äÁÎÎÙÅ Ï TCP ÓÏÅÄÉÎÅÎÉÑÈ ÏÔ ÐÒÏÇÒÁÍÍ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ

ëÓÔÁÔÉ, ÅÓÌÉ ×ÓÅ ÐÒÏÛÌÏ ÈÏÒÏÛÏ ÐÒÉ ÐÕÂÌÉËÁÃÉÉ ÜÔÏÊ ÓÔÁÔØÉ LinuxFocus, ÉÍÅÎÁ ÔÁÂÌÉÃ, ÄÁÎÎÙÅ ×ÙÛÅ ÄÏÌÖÎÙ ÉÍÅÔØ ÖÉ×ÙÅ ÓÓÙÌËÉ ÎÁ ÛÁÂÌÏÎÎÏÅ ÐÒÉÌÏÖÅÎÉÅ, ÒÁÂÏÔÁÀÝÅÅ ÎÁ RTA web-ÓÅÒ×ÅÒÅ × óÁÎÔÁ-ëÌÁÒÁ, ëÁÌÉÆÏÒÎÉÑ. èÏÒÏÛÁÑ ÓÓÙÌËÁ - ÜÔÏ ÓÓÙÌËÁ ÎÁ mytable.

 

 

ä×Å ËÏÍÁÎÄÙ

Run Time Access - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ, ËÏÔÏÒÁÑ ÓÏÅÄÉÎÑÅÔ ÕÐÒÁ×ÌÑÀÝÉÅ ÐÒÏÇÒÁÍÍÙ ÉÌÉ ÐÒÏÇÒÁÍÍÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ, ÎÁÐÉÓÁÎÎÙÅ Ó ÂÉÂÌÉÏÔÅËÏÊ ËÌÉÅÎÔÁ PostgreSQL (libpq), Ó ×ÁÛÉÍ ÐÒÉÌÏÖÅÎÉÅÍ ÉÌÉ ÄÅÍÏÎÏÍ. RTA - ÜÔÏ ÉÎÔÅÒÆÅÊÓ, Á ÎÅ ÂÁÚÁ ÄÁÎÎÙÈ. ðÏÜÔÏÍÕ ÅÊ ÎÅÏÂÈÏÄÉÍÙ ÔÏÌØËÏ Ä×Å SQL ËÏÍÁÎÄÙ: SELECT É UPDATE.

óÉÎÔÁËÉÓ ÄÌÑ ËÏÍÁÎÄÙ SELECT:

  SELECT column_list FROM table [where_clause] [limit_clause]

column_list - ÓÐÉÓÏË ÉÍÅÎ ÓÔÏÌÂÃÏ×, ÒÁÚÄÅÌÅÎÎÙÈ ÚÁÐÑÔÙÍÉ. where_clause - ÓÐÉÓÏË ÓÒÁ×ÎÅÎÉÊ, ÒÁÚÄÅÌÅÎÎÙÊ ÓÌÏ×ÁÍÉ AND. ïÐÅÒÁÔÏÒÙ ÓÒÁ×ÎÅÎÉÑ: =, |=, >=, <=, >, É <. limit_clause ÉÍÅÅÔ ÆÏÒÍÕ [LIMIT i] [OFFSET j], çÄÅ i - ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ×ÏÚ×ÒÁÝÁÅÍÙÈ ÓÔÒÏË É ÍÙ ÐÒÏÐÕÓËÁÅÍ j ÓÔÒÏË ÐÅÒÅÄ ÎÁÞÁÌÏÍ ×Ù×ÏÄÁ. îÅËÏÔÏÒÙÅ ÐÒÉÍÅÒÙ ÍÏÇÕÔ ÐÏÍÏÞØ ÒÁÚßÑÓÎÉÔØ ÓÉÎÔÁËÓÉÓ.

  SELECT * FROM rta_tables

  SELECT notes, count FROM atable WHERE count > 0

  SELECT count FROM atable WHERE count > 0 AND notes = "Hi Mom!"

  SELECT count FROM atable LIMIT 1 OFFSET 3

õÓÔÁÎÏ×ËÁ LIMIT × 1 É ÏÐÒÅÄÅÌÅÎÉÅ OFFSET - ÜÔÏ ÓÐÏÓÏ ÐÏÌÕÞÉÔØ ÓÐÅÃÉÆÉÞÅÓËÕÀ ÓÔÒÏËÕ. ðÏÓÌÅÄÎÉÊ ÐÒÉÍÅÒ ÜË×É×ÁÌÅÎÔÅÎ ËÏÄÕ ÎÁ C (mytable[3].count).

óÉÎÔÁËÓÉÓ ËÏÍÁÎÄÙ UPDATE:

UPDATE table SET update_list [where_clause] [limit_clause]

where_clause É limit_clause - ÔÏ ÖÅ, ÞÔÏ É ÏÐÉÓÁÎÎÏÅ ×ÙÛÅ. update_list - ÜÔÏ ÒÁÚÄÅÌÅÎÎÙÊ ÚÁÐÑÔÙÍÉ ÓÐÉÓÏË ÎÁÚÎÁÞÅÎÉÊ ÓÔÏÌÂÃÏ×. ïÐÑÔØ ÖÅ, ÎÅËÏÔÏÒÙÅ ÐÒÉÍÅÒÙ ÐÏÍÏÇÕÔ.

  UPDATE atable SET notes = "Not in use" WHERE count = 0

  UPDATE rta_dbg SET trace = 1

  UPDATE ethers SET mask = "255.255.255.0",
                    addr = "192.168.1.10"
                WHERE name = "eth0"

RTA ÒÁÓÐÏÚÎÁÅÔ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÅ ÓÌÏ×Á ËÁË × ×ÅÒÈÎÅÍ, ÔÁË É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÈÏÔÑ ÚÄÅÓØ ÐÒÉÍÅÒÙ ÉÓÐÏÌØÚÕÀÔ ×ÅÒÈÎÉÊ ÒÅÇÉÓÔÒ ÄÌÑ ×ÓÅÈ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÈ ÓÌÏ× SQL.

 

 

óËÁÞÉ×ÁÎÉÅ É ÓÂÏÒËÁ

÷Ù ÍÏÖÅÔÅ ÓËÁÞÁÔØ RTA Ó ÅÇÏ web-ÓÁÊÔÁ www.runtimeaccess.com (RTA ÎÁÈÏÄÉÔÓÑ ÐÏÄ ÄÅÊÓÔ×ÉÅÍ LGPL). âÕÄØÔÅ ÏÓÔÏÒÏÖÎÙ × ×ÙÂÏÒÅ ×ÅÒÓÉÉ RTA ÄÌÑ ÓËÁÞÉ×ÁÎÉÑ. ðÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ RTA ÉÓÐÏÌØÚÕÅÔ ÎÏ×ÙÊ ÐÒÏÔÏËÏÌ PostgreSQL, ××ÅÄÅÎÎÙÊ × PostgreSQL ×ÅÒÓÉÉ 7.4. âÏÌØÛÉÎÓÔ×Ï ÓÏ×ÒÅÍÅÎÎÙÈ ÄÉÓÒÉÂÕÔÉ×Ï× Linux ÉÓÐÏÌØÚÕÀÔ ×ÅÒÓÉÀ 7.3. ðÏËÁ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÒÕÀ ×ÅÒÓÉÀ RTA ÄÌÑ ÎÁÞÁÌØÎÙÈ ÐÏÐÙÔÏË. þÔÏÂÙ ÐÏÌÕÞÉÔØ ÐÏÓÌÅÄÎÉÅ ÉÓÐÒÁ×ÌÅÎÉÑ É ÒÁÓÛÉÒÅÎÉÑ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÏÓÌÅÄÎÉÅ ×ÅÒÓÉÉ.

ðÏÓÌÅ ÒÁÚÁÒÈÉ×ÁÃÉÉ ×Ù ÄÏÌÖÎÙ ÐÏÌÕÞÉÔØ ÓÌÅÄÕÀÝÉÅ ÄÉÒÅËÔÏÒÉÉ:

  ./doc            # a copy of the RTA web site
  ./empd           # a prototype deamon built with RTA
  ./src            # source files for the RTA library
  ./table_editor   # PHP source for the table editor
  ./test           # source for a sample application
  ./util           # utilities used in writing RTA

âÌÁÇÏÄÁÒÑ Graham Phillips, RTA ×ÅÒÓÉÉ 1.0 ÉÍÅÅÔ ÐÏÄÄÅÒÖËÕ autoconf. Graham ÐÏÒÔÉÒÏ×ÁÌ RTA ÉÚ Linux ÎÁ Mac OS X, Windows É Free BSD. éÓÐÏÌØÚÕÑ ÒÅÌÉÚ 1.0 ×Ù ÍÏÖÅÔÅ ÓÏÂÒÁÔØ RTA ÏÂÙÞÎÙÍÉ

  ./configure
  make
  make install      # (as root)

éÎÓÔÁÌÑÃÉÑ ÐÏÍÅÝÑÅÔ librtadb.so É Ó×ÑÚÁÎÎÙÅ ÂÉÂÌÉÏÔÅÞÎÙÅ ÆÁÊÌÙ × /usr/local/lib. þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ RTA ×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÜÔÕ ÄÉÒÅËÔÏÒÉÀ × /etc/ld.so.conf É ÚÁÐÕÓÔÉ× ldconfig, ÉÌÉ ×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÜÔÕ ÄÉÒÅËÔÏÒÉÀ Ë ÐÕÔÉ ×ÁÛÅÇÏ ÚÁÇÒÕÚÞÉËÁ:

  export LD_LIBRARY_PATH=/usr/local/lib

éÎÓÔÁÌÑÃÉÑ ÐÏÍÅÝÁÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ RTA, rta.h, × /usr/local/include

Make ÓÏÂÉÒÁÅÔ ÔÅÓÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ × ÄÉÒÅËÔÏÒÉÉ test É ×Ù ÍÏÖÅÔÅ ÐÒÏ×ÅÒÉÔØ ×ÁÛÕ ÕÓÔÁÎÏ×ËÕ, ÐÅÒÅÊÄÑ × ÄÉÒÅËÔÏÒÉÀ test É ÚÁÐÕÓÔÉ× ./app &. ëÏÍÁÎÄÁ netstat -nat ÄÏÌÖÎÁ ÐÏËÁÚÁÔØ ÐÒÏÇÒÁÍÍÕ, ÓÌÕÛÁÀÝÕÀ ÐÏÒÔ 8888. ôÅÐÅÒØ ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ psql É ÐÅÒÅÄÁÔØ SQL ËÏÍÁÎÄÙ ×ÁÛÅÍÕ ÔÅÓÔÏ×ÏÍÕ ÐÒÉÌÏÖÅÎÉÀ.

  cd test
  ./app &

  psql -h localhost -p 8888
  Welcome to psql 7.4.1, the PostgreSQL interactive terminal.

  Type:  \copyright for distribution terms
         \h for help with SQL commands
         \? for help on internal slash commands
         \g or terminate with semicolon to execute query
         \q to quit

  # select name from rta_tables;
      name
  -------------
   rta_tables
   rta_columns
   rta_dbg
   rta_stat
   mytable
   UIConns
  (6 rows)

÷ ÔÏ ×ÒÅÍÑ, ËÏÇÄÁ ÜÔÏ ×ÙÇÌÑÄÉÔ ËÁË ÂÕÄÔÏ ×Ù ÐÏÄËÌÀÞÅÎÙ Ë ÂÁÚÅ ÄÁÎÎÙÈ, ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÎÅ ÔÁË. îÅ ÚÁÂÙ×ÁÊÔÅ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÌØËÏ Ä×Å ËÏÍÁÎÄÙ: SELECT É UPDATE.

 

 

ðÒÅÉÍÕÝÅÓÔ×Á RTA

ðÒÅÉÍÕÝÅÓÔ×Á ÏÔÄÅÌÅÎÉÑ ÐÒÏÇÒÁÍÍ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÏÔ ÄÅÍÏÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ ÏÔÎÏÓÑÔÓÑ Ë ÛÉÒÏËÉÍ ËÁÔÅÇÏÒÉÑÍ ÐÒÏÅËÔÉÒÏ×ÁÎÉÑ, ËÏÄÉÒÏ×ÁÎÉÑ, ÏÔÌÁÄËÉ É ×ÏÚÍÏÖÎÏÓÔÅÊ.

ó ÔÏÞËÉ ÚÒÅÎÉÑ ÐÒÏÅËÔÉÒÏ×ÁÎÉÑ, ÒÁÚÄÅÌÅÎÉÅ ÚÁÓÔÁ×ÌÑÅÔ ×ÁÓ ÒÅÛÉÔØ ÅÝÅ ÐÒÉ ÐÒÏÅËÔÉÒÏ×ÁÎÉÅ, ÞÔÏ ÉÍÅÎÎÏ ÐÒÅÄÌÏÖÅÎÏ × ËÁÞÅÓÔ×Å ÞÁÓÔÉ ðé, ÎÅ ÚÁÂÏÔÑÓØ ËÁË ÜÔÏ ÏÔÏÂÒÁÖÅÎÏ. íÙÓÌÉÔÅÌØÎÙÊ ÐÒÏÃÅÓÓ, ÎÅÏÂÈÏÄÉÍÙÊ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ÔÁÂÌÉà ÚÁÓÔÁ×ÌÑÅÔ ×ÁÓ ÄÕÍÁÔØ Ï ÎÁÓÔÏÑÝÅÊ ÒÁÚÒÁÂÏÔËÅ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ. ôÁÂÌÉÃÙ ÍÏÇÕÔ ÆÏÒÍÉÒÏ×ÁÔØ ×ÎÕÔÒÅÎÎÉÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ ÓÐÅÃÉÆÉËÁÃÉÉ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ.

÷Ï ×ÒÅÍÑ ËÏÄÉÒÏ×ÁÎÉÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÁÂÌÉà - ÜÔÏ ÔÏ, ÞÔÏ ÓÏÚÄÁÀÔ ÉÎÖÅÎÅÒÙ ÄÅÍÏÎÁ É ÔÏ, Ó ÞÅÇÏ ÓÏÚÄÁÀÔ ÉÎÖÅÎÅÒÙ ðé. òÁÚÄÅÌÅÎÉÅ ðé É ÄÅÍÏÎÁ ÐÏÄÒÁÚÕÍÅ×ÁÅÔ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÎÅÚÁ×ÉÓÉÍÏ ÎÁÎÑÔØ ðé-ÜËÓÐÅÒÔÏ× É ÄÅÍÏÎ-ÜËÓÐÅÒÔÏ×, É ÏÎÉ ÍÏÇÕÔ ËÏÄÉÒÏ×ÁÔØ ÎÅÚÁ×ÉÓÉÍÏ, ÞÔÏ ÍÏÖÅÔ ÐÏÍÏÞØ ÒÁÎØÛÅ ÐÒÉÎÅÓÔÉ ÐÒÏÄÕËÔ ÎÁ ÒÙÎÏË. ô.Ë. ÓÕÝÅÓÔ×ÕÀÔ Ó×ÑÚÉ Postgres Ó PHP, Tcl/Tk, Perl É "C", ×ÁÛÉ ÒÁÚÒÁÂÏÔÞÉËÉ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÁ×ÉÌØÎÙÊ ÉÎÓÔÒÕÍÅÎÔ ÄÌÑ ÒÁÂÏÔÙ.

ïÔÌÁÄËÁ ÐÒÏÈÏÄÉÔ ÂÙÓÔÒÅÅ É ÌÅÇÞÅ, ÐÏÔÏÍÕ ÞÔÏ ÉÎÖÅÎÅÒÙ ðé É ÄÅÍÏÎÁ ÍÏÇÕÔ ÌÅÇËÏ ÉÍÉÔÉÒÏ×ÁÔØ ÄÒÕÇÕÀ ÐÏÌÏ×ÉÎÕ. îÁÐÒÉÍÅÒ, ÉÎÖÅÎÅÒÙ ðé ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ Ó×ÏÉ ÐÒÏÇÒÁÍÍÙ ðé ×ÍÅÓÔÅ Ó ÎÁÓÔÏÑÝÅÊ Postgres âä, ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÁËÉÅ ÖÅ ÔÁÂÌÉÃÙ, ÞÔÏ ÂÕÄÅÔ ÉÍÅÔØ ÄÅÍÏÎ. ðÒÏ×ÅÒËÁ ÄÅÍÏÎÁ ÍÏÖÅÔ ÂÙÔØ ÌÅÇÞÅ É ÂÏÌÅÅ ÐÏÌÎÏÊ, Ô.Ë. ÌÅÇÞÅ ÓÏÚÄÁÔØ ÔÅÓÔÏ×ÙÅ ÓËÒÉÐÔÙ, ÞÔÏÂÙ ÉÍÉÔÉÒÏ×ÁÔØ ðé, É ÌÅÇÞÅ ÐÒÏ×ÅÒÑÔØ ×ÎÕÔÒÅÎÅÅ ÓÏÓÔÏÑÎÉÅ É ÓÔÁÔÉÓÔÉËÕ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ ÔÅÓÔÁ. óÐÏÓÏÂÎÏÓÔØ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ×ÎÕÔÒÅÎÎÅÅ ÓÏÓÔÏÑÎÉÅ ÉÌÉ ÕÓÌÏ×ÉÅ ÐÏÍÏÇÁÅÔ ÔÅÓÔÉÒÏ×ÁÔØ ÕÇÌÏ×ÙÅ ÕÓÌÏ×ÉÑ, ÞÔÏ ÉÎÏÇÄÁ ÔÒÕÄÎÏ ÓÄÅÌÁÔØ × ÌÁÂÏÒÁÔÏÒÎÏÊ ÕÓÔÁÎÏ×ËÅ.

÷ÏÚÍÏÖÎÏÓÔØ ×ÁÛÅÇÏ ÐÒÏÄÕËÔÁ ÍÏÇÕÔ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ Ó RTA. ÷ÁÛ ÚÁËÁÚÞÉË ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÏÃÅÎÉÔ ×ÏÚÍÏÖÎÏÓÔØ ×ÉÄÅÔØ ÄÅÔÁÌÉÚÉÒÏ×ÁÎÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ É ÓÔÁÔÉÓÔÉËÕ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ ÐÒÏÇÒÁÍÍÙ. ïÔÄÅÌÅÎÉÅ ðé ÏÔ ÄÅÍÏÎÁ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÓÍÏÖÅÔÅ ÉÍÅÔØ ÂÏÌØÛÅ ÐÒÏÇÒÁÍÍ ðé: SNMP, ËÏÍÁÎÄÎÕÀ ÓÔÒÏËÕ, web, LDAP É ÓÐÉÓÏË ÍÏÖÎÏ ÐÒÏÄÏÌÖÁÔØ. üÔÁ ÇÉÂËÏÓÔØ ÂÕÄÅÔ ×ÁÖÎÁ ÄÌÑ ×ÁÓ ÅÓÌÉ (ËÏÇÄÁ!) ×ÁÛÉ ÚÁËÁÚÞÉËÉ ÐÏÐÔÒÅÂÕÀÔ ðé ÎÁ ÚÁËÁÚ.

RTA ÐÒÅÄÌÁÇÁÅÔ ÎÅÓËÏÌØÏË ÄÒÕÇÉÈ ÈÁÒÁËÔÅÒÉÓÔÉË, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ ÚÁÈÏÔÅÔØ ÉÍÅÔØ × ÐÁËÅÔÅ:

 

 

éÔÏÇ

üÔÁ ÓÔÁÔØÑ ÐÒÅÄÓÔÁ×ÉÌÁ ÏÞÅÎØ ËÒÁÔËÏÅ ××ÅÄÅÎÉÅ × ÂÉÂÌÉÏÔÅËÕ RTA É ÅÅ ×ÏÚÍÏÖÎÏÓÔÉ. îÁ web-ÓÁÊÔÅ RTA ÅÓÔØ FAQ, ÐÏÌÎÏÅ ÏÐÉÓÁÎÉÅ API É ÎÅÓËÏÌØËÏ ÐÒÉÍÅÒÏ× ËÌÉÅÎÔÓËÉÈ ÐÒÏÇÒÁÍÍ.

ëÁË RTA ÍÏÖÅÔ ÏÔÏÂÒÁÚÉÔØ ×ÁÛÉ ÓÔÒÕËÔÕÒÙ ÄÁÎÎÙÈ × ×ÉÄÅ ÔÁÂÌÉÃ × ÂÁÚÅ ÄÁÎÎÙÈ, ÔÁËÖÅ ÏÎÁ ÍÏÖÅÔ ÏÔÏÂÒÁÚÉÔØ ÉÈ, ËÁË ÆÁÊÌÙ × ×ÉÒÔÕÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. ( éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÁËÅÔÁ File System in Userspace (FUSE) by Miklos Szeredi.) îÁ Web-ÓÁÊÔÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÆÅÊÓ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ.

 

óÔÒÁÎÉÃÁ ÏÔÚÙ×Ï×

õ ËÁÖÄÏÊ ÚÁÍÅÔËÉ ÅÓÔØ ÓÔÒÁÎÉÃÁ ÏÔÚÙ×Ï×. îÁ ÜÔÏÊ ÓÔÒÁÎÉÃÅ ×Ù ÍÏÖÅÔÅ ÏÓÔÁ×ÉÔØ Ó×ÏÊ ËÏÍÍÅÎÔÁÒÉÊ ÉÌÉ ÐÒÏÓÍÏÔÒÅÔØ ËÏÍÍÅÎÔÁÒÉÉ ÄÒÕÇÉÈ ÞÉÔÁÔÅÌÅÊ
 talkback page 

<--, ÐÅÒÅÊÔÉ Ë ÎÁÞÁÌØÎÏÊ ÓÔÒÁÎÉÃÅ ×ÙÐÕÓËÁ

Webpages maintained by the LinuxFocus Editor team
© Bob Smith, FDL
LinuxFocus.org
Translation information:
en --> -- : Bob Smith <bob/at/linuxtoys.org>
en --> ru: Peter Demidov <p_demidov/at/rambler.ru>

2004-06-01, generated by lfparser version 2.43