
Dynamic SQL Operations
HP NonStop SQL/MP Programming Manual for C—429847-008
10-47
Detailed Dynamic SQL Program
179 {
180 lastchar = nb + (name_len - 1);
181 if ( *lastchar == ' ') /* last character is blank */
182 /* that SQL inserts to make */
183 /* length info fall on an */
184 /* even byte boundary */
185 /* (the name had an odd */
186 /* number of characters) */
187
188 { strncpy( name_array, nb, name_len - 1);
189 name_array[name_len - 1] = '\0';
190 }
191 else
192 { strncpy( name_array, nb, name_len);
193 name_array[name_len] = '\0';
194 }
195 }
196
197 /* advance nb to the next name */
198 nb = la 1;
199
200 /* ------------------------------------------------ */
201 /* Display data depending on data type */
202 /* ------------------------------------------------ */
203
204 switch (sqlda->sqlvar[i].data_type) {
205 /* ------------------------------------------------ */
206 case _SQLDT_ASCII_F : /* CHAR data type */
207
208 data_ptr = (char *) sqlda->sqlvar[i].var_ptr;
209 data_len = sqlda->sqlvar[i].data_len;
210
211 if (data_len <= 38)
212 { strncpy( data_array, data_ptr, data_len );
213 data_array[data_len] = '\0';
214 printf( "%-40s %s\n", name_array, data_array );
215 fflush (stdout);
216 }
217 else
218 {
219 /* display first 38 characters of data */
220 printf( "%-40s %.38s\n", name_array, data_ptr );
221 fflush (stdout);
222 }
223 break;
224
225 /* ------------------------------------------------- */
226 case _SQLDT_ASCII_V : /* VARCHAR datatype */
227
228 data_ptr = (char *) sqlda->sqlvar[i].var_ptr;
229 len_ptr = (short *) data_ptr; /* length prefix */
230 da= 2; /* skip length prefix */
231
232 if ( *len_ptr <= 38)
233 { if ( *len_ptr != 0 ) /* filter zero length */
234 strncpy( data_array, data_ptr, *len_ptr );
235 data_array[ *len_ptr ] = '\0';
236 printf( "%-40s %s\n", name_array, data_array );
237 fflush (stdout);
238 }
239 else
240 {
Example 10-8. Detailed Dynamic SQL Program
(page 4 of 22)
Содержание NonStop SQL/MP
Страница 4: ......
Страница 14: ...Contents HP NonStop SQL MP Programming Manual for C 429847 008 x ...
Страница 34: ...Introduction HP NonStop SQL MP Programming Manual for C 429847 008 1 8 SQL MP Version Management ...
Страница 60: ...Host Variables HP NonStop SQL MP Programming Manual for C 429847 008 2 26 VARCHAR Data Type ...
Страница 68: ...SQL MP Statements and Directives HP NonStop SQL MP Programming Manual for C 429847 008 3 8 Finding Information ...
Страница 156: ...Explicit Program Compilation HP NonStop SQL MP Programming Manual for C 429847 008 6 40 SQL Program Files ...
Страница 264: ...Dynamic SQL Operations HP NonStop SQL MP Programming Manual for C 429847 008 10 66 Detailed Dynamic SQL Program ...
Страница 294: ...SQL MP Sample Database HP NonStop SQL MP Programming Manual for C 429847 008 A 6 ...
Страница 300: ...Memory Considerations HP NonStop SQL MP Programming Manual for C 429847 008 B 6 Avoiding Memory Stack Overflows ...
Страница 304: ...Maximizing Local Autonomy HP NonStop SQL MP Programming Manual for C 429847 008 C 4 Skipping Unavailable Partitions ...