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
|