|
|
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
У нас есть следующее VIEW: ALTER VIEW "USER1"."VIEW1" as select ID1,ID2,NAME1 || ' - ' || DESC1 as TYPE_NAME from USER1.TABLE1 where ID3 > 0 Если делаешь SELECT ID1,ID2,TYPE_NAME FROM "USER1"."VIEW1" в ISQL, το работает нормально. А если тот же SELECT делаем в программе на C++, то он падает. Для коннекции в программе на C++ мы используем провайдер, как показано в функции ниже hr = CoCreateInstance(CLSID_MSDASQL, NULL, CLSCTX_INPROC_SERVER, IID_IDBInitialize, (void **) &pIDBInitialize); Пробовали использовать во VIEW в качестве знака конкатенации "+" вместо знака "||" - результат тот же самый. В чем проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 22:55 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
Забыл сказать, что это ASA 10.0.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 22:56 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
Κстати, говорят, что уже якобы есть ASA 10.5.0. Где можно взять бесплатно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 22:59 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
Говорят, что кур доят . ____________________________________ - Гарфилд, мышь! - Спасибо, я сыт! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 23:30 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
БокаДля коннекции в программе на C++ мы используем провайдер, как показано в функции ниже hr = CoCreateInstance(CLSID_MSDASQL, NULL, CLSCTX_INPROC_SERVER, IID_IDBInitialize, (void **) &pIDBInitialize); Это не провайдер, это инициализация COM (и я подозреваю что ты используешь ADO). Провайдер, это то что ты указываешь в строке коннекта в слове Provider. В чем конкретно проблема не скажу, может быть в провайдере (не я не знаю какой именно провайдер ты используешь), в интерфейсе (ADO славен кривой работой с блобами) или в твоей программе (потому что она не умеет работать с блобами). Но источник скорее всего именно в блобах. Когда ты склеиваешь несколько строк, SA не мудрствуя превращает результат формулы в long varchar. Можно обойти подправив вьюшку вот так: Код: plaintext 1. 2. 3. 4. БокаΚстати, говорят, что уже якобы есть ASA 10.5.0. Где можно взять бесплатно ?11.0 не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 01:02 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
И вообще не понятно, что именно падает, клиент или сервер... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 15:12 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
White Owl БокаДля коннекции в программе на C++ мы используем провайдер, как показано в функции ниже hr = CoCreateInstance(CLSID_MSDASQL, NULL, CLSCTX_INPROC_SERVER, IID_IDBInitialize, (void **) &pIDBInitialize); Это не провайдер, это инициализация COM (и я подозреваю что ты используешь ADO). Провайдер, это то что ты указываешь в строке коннекта в слове Provider. В чем конкретно проблема не скажу, может быть в провайдере (не я не знаю какой именно провайдер ты используешь), в интерфейсе (ADO славен кривой работой с блобами) или в твоей программе (потому что она не умеет работать с блобами). Но источник скорее всего именно в блобах. Когда ты склеиваешь несколько строк, SA не мудрствуя превращает результат формулы в long varchar. Можно обойти подправив вьюшку вот так: Код: plaintext 1. 2. 3. 4. Я забыл сказать, что этот же код с этим же VIEW, и использую тот же провайдер, у нас работал с ASA 7.0.1, а падать стал после перехода на ASA 10.0.1. Kοд не мой, спрошу у автора насчет провайдера. БокаΚстати, говорят, что уже якобы есть ASA 10.5.0. Где можно взять бесплатно ?11.0 не устраивает?[/quot]Если есть, то конечно устраивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 16:59 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
White Owl, ваше решение помогло, спасибо. Мы используем OLEDB провайдер, который называется MSDASQL. А что насчен ASA 11.0 ? Уточните пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 18:19 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
БокаWhite Owl, ваше решение помогло, спасибо. Мы используем OLEDB провайдер, который называется MSDASQL.Ответ опять не полный :) MSDASQL это мост ODBC->OLDDB. То есть у вас сейчас данные проходят аж три конвертации - сначала их получает ODBC драйвер (по прежнему неизвестно какой версии), потом они превращаются в OLEDB формат внутри MSDASQL и потом в ADO, прежде чем наконец с ними начнет работать пользовательское приложение. Молодцы, все собрали... вам бы еще туда прямые вызовы к dblib добавить и получится вообще замечательно. Вы ж на Си пишете, работали бы уж напрямую с ODBC и проблем бы не было.... БокаА что насчен ASA 11.0 ? Уточните пожалуйстаА чего тут уточнять? SA 11 beta раздается бесплатно для тестеров. Линк на нее есть на главной странице sybase.com (называется SQL Anywhere Panorama Beta). Ходи туда, регестрируйся, выкачивай и играйся на здоровье. Только клиентам сервер ставить нельзя будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 19:43 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
White OwlВы ж на Си пишете, работали бы уж напрямую с ODBC и проблем бы не было.... Тогда уж с ESQL. Прямее не бывает ;). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 01:24 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
Dim2000 White OwlВы ж на Си пишете, работали бы уж напрямую с ODBC и проблем бы не было.... Тогда уж с ESQL. Прямее не бывает ;).Тоже верно. Удобнее, быстрее, фичастее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 17:50 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
White Owl БокаWhite Owl, ваше решение помогло, спасибо. Мы используем OLEDB провайдер, который называется MSDASQL.Ответ опять не полный :) MSDASQL это мост ODBC->OLDDB. То есть у вас сейчас данные проходят аж три конвертации - сначала их получает ODBC драйвер (по прежнему неизвестно какой версии), потом они превращаются в OLEDB формат внутри MSDASQL и потом в ADO, прежде чем наконец с ними начнет работать пользовательское приложение. Молодцы, все собрали... вам бы еще туда прямые вызовы к dblib добавить и получится вообще замечательно. Вы ж на Си пишете, работали бы уж напрямую с ODBC и проблем бы не было.... Спасибо. A Вы не могли бы привести примерчик фрагмента кода в C++ с коннекцией напрямую с ODBC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2008, 17:53 |
|
||
|
SELECT из VIEW с конкатенацией падает в программе на C++
|
|||
|---|---|---|---|
|
#18+
БокаA Вы не могли бы привести примерчик фрагмента кода в C++ с коннекцией напрямую с ODBC ?Иех, компоненто-любы..... Ну вот, мой собственный микро-враппер над ODBC. Код: 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. Код: 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. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2008, 18:05 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35370780&tid=2011534]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 406ms |

| 0 / 0 |
