Remote SQL execute for PostgreSQL on GSM/GPRS channel with extreme compress and cryptography

   1:  CREATE OR REPLACE FUNCTION "SaveDiskZakazToServer"(character varying, integer)
   2:    RETURNS integer AS
   3:  $BODY$
   4:  DECLARE
   5:          num_rows integer;
   6:      ConnectionString ALIAS FOR $1;
   7:          DiskZakazNumber ALIAS For $2;
   8:          str1  character varying(40000);
   9:      "_TerminalID" character varying(250);
  10:      _tomodif integer;
  11:      "_МаркаАвто" character varying(250);
  12:      "_Модель_Наименование" character varying(250);
  13:      "_Модификация_Наименование" character varying(250);
  14:      "_ГодВыпуска" character varying(250);
  15:      "_ИмпортСкладскихОстатков_i" integer;
  16:      "_ИмпортСкладскихОстатков_ДатаИмпо" character varying(250);
  17:      "_СкладскиеОстаткиДисков_i" integer;
  18:      "_ВыбранныйДиск_ПосадочныйДиаметр" character varying(250);
  19:      "_ВыбранныйДиск_Ширина" character varying(250);
  20:      "_ВыбранныйДиск_Вылет_ET" character varying(250);
  21:      "_ВыбранныйДиск_Сверловка_Hole" character varying(250);
  22:      "_ВыбранныйДиск_Сверловка_PCD" character varying(250);
  23:      "_ВыбранныйДиск_ЦентральноеОтверст" character varying(250);
  24:      "_ВыбранныйДиск_Цвет" character varying(250);
  25:      "_ВыбранныйДиск_Атрикул" character varying(250);
  26:      "_ВыбранныйДиск_Наименование" character varying(250);
  27:      "_ВыбранныйДиск_Kol" character varying(250);
  28:      "_ВыбранныйДиск_Цена" character varying(250);
  29:      "_Заказ_Количество" integer;
  30:      "_Заказчик_Tel" character varying(250);
  31:      "_Заказчик_АдресДоставки" character varying(250);
  32:      "_Заказчик_ФИО" character varying(250);
  33:      "_ДатаЗаказа" character varying(250);
  34:  BEGIN
  35:   
  36:      Select 
  37:      "TerminalID",
  38:      tomodif,
  39:      "МаркаАвто",
  40:      "Модель_Наименование",
  41:      "Модификация_Наименование",
  42:      "ГодВыпуска",
  43:      "ИмпортСкладскихОстатков_i",
  44:      "ИмпортСкладскихОстатков_ДатаИмпо",
  45:      "СкладскиеОстаткиДисков_i",
  46:      "ВыбранныйДиск_ПосадочныйДиаметр",
  47:      "ВыбранныйДиск_Ширина",
  48:      "ВыбранныйДиск_Вылет_ET",
  49:      "ВыбранныйДиск_Сверловка_Hole",
  50:      "ВыбранныйДиск_Сверловка_PCD",
  51:      "ВыбранныйДиск_ЦентральноеОтверст",
  52:      "ВыбранныйДиск_Цвет",
  53:      "ВыбранныйДиск_Атрикул",
  54:      "ВыбранныйДиск_Наименование",
  55:      "ВыбранныйДиск_Kol",
  56:      "ВыбранныйДиск_Цена",
  57:      "Заказ_Количество",
  58:      "Заказчик_Tel",
  59:      "Заказчик_АдресДоставки",
  60:      "Заказчик_ФИО",
  61:      "ДатаЗаказа"    
  62:      into 
  63:      "_TerminalID",
  64:      _tomodif,
  65:      "_МаркаАвто",
  66:      "_Модель_Наименование",
  67:      "_Модификация_Наименование",
  68:      "_ГодВыпуска",
  69:      "_ИмпортСкладскихОстатков_i",
  70:      "_ИмпортСкладскихОстатков_ДатаИмпо",
  71:      "_СкладскиеОстаткиДисков_i",
  72:      "_ВыбранныйДиск_ПосадочныйДиаметр",
  73:      "_ВыбранныйДиск_Ширина",
  74:      "_ВыбранныйДиск_Вылет_ET",
  75:      "_ВыбранныйДиск_Сверловка_Hole",
  76:      "_ВыбранныйДиск_Сверловка_PCD",
  77:      "_ВыбранныйДиск_ЦентральноеОтверст",
  78:      "_ВыбранныйДиск_Цвет",
  79:      "_ВыбранныйДиск_Атрикул",
  80:      "_ВыбранныйДиск_Наименование",
  81:      "_ВыбранныйДиск_Kol",
  82:      "_ВыбранныйДиск_Цена",
  83:      "_Заказ_Количество",
  84:      "_Заказчик_Tel",
  85:      "_Заказчик_АдресДоставки",
  86:      "_Заказчик_ФИО",
  87:      "_ДатаЗаказа"
  88:      from "ЗаказыДисков" where i=DiskZakazNumber;
  89:   
  90:      GET DIAGNOSTICS num_rows = ROW_COUNT;
  91:   
  92:      if num_rows>0 then
  93:   
  94:          str1:=
  95:          'insert into "ЗаказыДисков" (
  96:          "TerminalID",
  97:          tomodif,
  98:          "МаркаАвто",
  99:          "Модель_Наименование",
 100:          "Модификация_Наименование",
 101:          "ГодВыпуска",
 102:          "ИмпортСкладскихОстатков_i",
 103:          "ИмпортСкладскихОстатков_ДатаИмпо",
 104:          "СкладскиеОстаткиДисков_i",
 105:          "ВыбранныйДиск_ПосадочныйДиаметр",
 106:          "ВыбранныйДиск_Ширина",
 107:          "ВыбранныйДиск_Вылет_ET",
 108:          "ВыбранныйДиск_Сверловка_Hole",
 109:          "ВыбранныйДиск_Сверловка_PCD",
 110:          "ВыбранныйДиск_ЦентральноеОтверст",
 111:          "ВыбранныйДиск_Цвет",
 112:          "ВыбранныйДиск_Атрикул",
 113:          "ВыбранныйДиск_Наименование",
 114:          "ВыбранныйДиск_Kol",
 115:          "ВыбранныйДиск_Цена",
 116:          "Заказ_Количество",
 117:          "Заказчик_Tel",
 118:          "Заказчик_АдресДоставки",
 119:          "Заказчик_ФИО",
 120:          "ДатаЗаказа"
 121:          ) VALUES ('
 122:          || '''' ||     "_TerminalID"::character varying || ''','
 123:          ||              _tomodif || ','
 124:          || '''' ||     "_МаркаАвто"::character varying || ''','
 125:          || '''' ||     "_Модель_Наименование"::character varying || ''','
 126:          || '''' ||     "_Модификация_Наименование"::character varying || ''','
 127:          || '''' ||     "_ГодВыпуска"::character varying || ''','
 128:          ||              "_ИмпортСкладскихОстатков_i" || ','
 129:          || '''' ||     "_ИмпортСкладскихОстатков_ДатаИмпо"::character varying || ''','
 130:          ||              "_СкладскиеОстаткиДисков_i" || ','
 131:          || '''' ||     "_ВыбранныйДиск_ПосадочныйДиаметр"::character varying || ''','
 132:          || '''' ||     "_ВыбранныйДиск_Ширина"::character varying || ''','
 133:          || '''' ||     "_ВыбранныйДиск_Вылет_ET"::character varying || ''','
 134:          || '''' ||     "_ВыбранныйДиск_Сверловка_Hole"::character varying || ''','
 135:          || '''' ||     "_ВыбранныйДиск_Сверловка_PCD"::character varying || ''','
 136:          || '''' ||     "_ВыбранныйДиск_ЦентральноеОтверст"::character varying || ''','
 137:          || '''' ||     "_ВыбранныйДиск_Цвет"::character varying || ''','
 138:          || '''' ||     "_ВыбранныйДиск_Атрикул"::character varying || ''','
 139:          || '''' ||     "_ВыбранныйДиск_Наименование"::character varying || ''','
 140:          ||              "_ВыбранныйДиск_Kol" || ','
 141:          || '''' ||     "_ВыбранныйДиск_Цена"::character varying || ''','
 142:          || '''' ||     "_Заказ_Количество"::character varying || ''','
 143:          || '''' ||     "_Заказчик_Tel"::character varying || ''','
 144:          || '''' ||     "_Заказчик_АдресДоставки"::character varying || ''','
 145:          || '''' ||     "_Заказчик_ФИО"::character varying || ''','
 146:          || '''' ||     "_ДатаЗаказа"::character varying 
 147:          || ''');';
 148:   
 149:          if (str1 is NULL) then
 150:   
 151:              return 2;
 152:   
 153:          else    
 154:              Begin
 155:                  perform     dblink_exec(ConnectionString, str1,true);
 156:                  update "ЗаказыДисков" set status=1 where  i=DiskZakazNumber;
 157:                  return 0;
 158:              EXCEPTION
 159:                  when others then
 160:                  insert into debug1(txt) values (SQLSTATE || ' : ' || SQLERRM) ;
 161:                  return 4;
 162:              END;
 163:          end if;
 164:   
 165:      else
 166:          Return 3;
 167:      end if;
 168:   
 169:  EXCEPTION
 170:   
 171:      when others then
 172:      return -1;
 173:  END;
 174:  $BODY$
 175:    LANGUAGE 'plpgsql' VOLATILE
 176:    COST 100;
 177:  ALTER FUNCTION "SaveDiskZakazToServer"(character varying, integer) OWNER TO postgres;


Comments ( )
Link to this page: //www.vb-net.com/RemoteSQLexecute/dblink.htm
< THANKS ME>