Имя: Пароль:
1C
1С v8
Есть ли надежда на ответ ... Не записываются данные в таблицу
0 Coldboy
 
19.10.12
17:10
Через    Соединение = Новый COMОбъект("ADODB.Connection");
пытаюсь записать в таблицу БД, такую вещь
   СтрокаЗАпроса = " Insert Into `VOD_PURCHASE` (TRANSACTION_ID,AMOUNT,MOMENT,ACCOUNT_NUMBER,CONTENT_NAME,CONTENT_ID) VALUES("+СтрокаТЗ.OperationID+","+Число(СтрокаТЗ.Sum)+","+Формат(СтрокаТЗ.moment,"ДФ=yyyy-MM-dd-ЧЧ-мм-сс")+","+Строка(СтрокаТЗ.externalAccountID)+","+Строка(СтрокаТЗ.contenName)+","+Число(СтрокаТЗ.ContentID)+")";

Почему то начинай с Строка(СтрокаТЗ.contenName) - там идут данные с пробелом типа название "Такое название", он ругается и выдает такую ошибку Ошибка выполнения запроса к БД: {Форма.Форма.Форма(134)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.1 Driver][mysqld-5.1.61-0ubuntu0.10.10.1]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'мобильник,5 555)' at line 1!!!
1 Fragster
 
гуру
19.10.12
17:10
Сообщить(СтрокаЗАпроса)
2 Fragster
 
гуру
19.10.12
17:11
я таки думаю, что сейчас будет вопрос, что за пробелы в числах, и почему они не удаляются через СтрЗаменить(1000, " ", "");
3 ДенисЧ
 
19.10.12
17:11
СтрокаЗАпроса = " Insert Into `VOD_PURCHASE` (TRANSACTION_ID,AMOUNT,MOMENT,ACCOUNT_NUMBER,CONTENT_NAME,CONTENT_ID) VALUES("+СтрокаТЗ.OperationID+","+Число(СтрокаТЗ.Sum)+","+Формат(СтрокаТЗ.moment,"ДФ=yyyy-MM-dd-ЧЧ-мм-сс")+","+Строка(СтрокаТЗ.externalAccountID)+",'"+Строка(СтрокаТЗ.contenName)+"',"+Число(СтрокаТЗ.ContentID)+")";
4 GLazNik
 
19.10.12
17:12
(0) это... а зачем вот это: "+Число(СтрокаТЗ.Sum)+"
5 Fragster
 
гуру
19.10.12
17:12
автор! юзай СериализаторXDTO.XMLСтрока(1000)!
6 1Страх
 
19.10.12
17:12
(2) +1000
не надо там в числа ничего преобразовывать ибо бесполезно, все равно строка
лучше тогда параметры юзать
7 runoff_runoff
 
19.10.12
17:12
отловите текст конечного запроса в отладчике и выложите тут..
8 Coldboy
 
19.10.12
17:13
Вот смотрите  Insert Into `VOD_PURCHASE` (TRANSACTION_ID,AMOUNT,MOMENT,ACCOUNT_NUMBER,CONTENT_NAME,CONTENT_ID) VALUES(968,5,2012-10-19-12-02-54,123123,Чертов мобильник,5 555)

ругается на последние 2, думаю из за записи, и пробела в 5 555, как это исправить?
9 Coldboy
 
19.10.12
17:13
если последнее Int(11)
10 Fragster
 
гуру
19.10.12
17:13
(8)->(5)
11 drcrasher
 
19.10.12
17:14
(0) а строки в кавычки кто заворачивать будет?
12 ДенисЧ
 
19.10.12
17:14
(8) формат и кавычки тебе помогут.
13 drcrasher
 
19.10.12
17:14
(8) строки в кавычки, число - через формат
14 Coldboy
 
19.10.12
17:15
Как если он в параметре че прям так и дселать
МояСтрока = "'"+МояСтрока+"'";
(10) примерно можно?
15 runoff_runoff
 
19.10.12
17:15
(9) да.. вам ответили.. строки заключить в одиночные кавычки..
16 Fragster
 
гуру
19.10.12
17:15
СериализаторXDTO.XMLСтрока(СтрокаТЗ.ContentID)
17 Coldboy
 
19.10.12
17:19
(15) с кавычками не прокатило.
18 Coldboy
 
19.10.12
17:22
(16) СериализаторXDTO.XMLСтрока(СтрокаТЗ.contenName) к названию тоже не прокатило как быть?
19 Fragster
 
гуру
19.10.12
17:23
(18) строки - в кавычки
20 Coldboy
 
19.10.12
17:24
я писал МояСтрока = "'"+МояСтрока+"'"; нифига. думаю дело в другом в числе 9 555 с ним как быть?
21 Coldboy
 
19.10.12
17:24
СериализаторXDTO.XMLСтрока(СтрокаТЗ.ContentID) - это поле вообще Int(11) должно быть
22 Fragster
 
гуру
19.10.12
17:24
(20) в числе -> (5)
23 Fragster
 
гуру
19.10.12
17:25
СериализаторXDTO.XMLСтрока(9555)
24 1Страх
 
19.10.12
17:25
параметры юзай!
25 Fragster
 
гуру
19.10.12
17:27
(24) сегодня пятница
26 1Страх
 
19.10.12
17:28
(25) блин, так быстро?
27 Coldboy
 
19.10.12
17:30
Так вроде бы все, тока дату, с ней надо кое что уладить, Формат(СтрокаТЗ.moment,"ДФ='yyyy-MM-dd ЧЧ:мм:сс'")
не пихается ...
было Формат(СтрокаТЗ.moment,"ДФ='yyyy-MM-dd-ЧЧ-мм-сс'")
тоже не залезло ..
нету че нить типа преобразовать в timestamp
28 Лефмихалыч
 
19.10.12
17:30
Формат(%ВсеЧисловыеЗначения%, "ЧГ=0")
29 Лефмихалыч
 
19.10.12
17:30
ругается на неразрывный пробел в "5 555"
30 Fragster
 
гуру
19.10.12
17:31
кстати, XMLСтрока(число) в 3 раза быстрее Формат(Число,"ЧГ="), который в 3 раза быстрее сериализатора XDTO. а я типа шутил так...
31 SleepWalker
 
19.10.12
17:31
(20) Формат(Число,"ЧГ = 0")
32 Coldboy
 
19.10.12
17:31
(29) уже понял. Fragster описывал это выше.
33 Coldboy
 
19.10.12
17:32
как с датой быть ребят?
34 Coldboy
 
19.10.12
17:32
еще бы время не потерять там ...
35 Fragster
 
гуру
19.10.12
17:33
yyyyMMddЧЧммсс
36 SleepWalker
 
19.10.12
17:35
(35) +1
37 Coldboy
 
19.10.12
17:37
че то не хочет он дату через формат(Дата,yyyyMMddЧЧммсс);
38 Fragster
 
гуру
19.10.12
17:37
а XMLСтрока на дату не канает, кстати?
39 Coldboy
 
19.10.12
17:38
ООО да все ок    СтрокаЗАпроса = " Insert Into `VOD_PURCHASE` (TRANSACTION_ID,AMOUNT,MOMENT,ACCOUNT_NUMBER,CONTENT_NAME,CONTENT_ID) VALUES("+XMLСтрока(СтрокаТЗ.OperationID)+","+XMLСтрока(СтрокаТЗ.Sum)+","+Формат(СтрокаТЗ.moment,"ДФ=yyyyMMddЧЧммсс")+","+"'"+СтрокаТЗ.externalAccountID+"'"+","+"'"+СтрокаТЗ.contenName+"'"+","+XMLСтрока(СтрокаТЗ.vidimaxContentID)+")";

Конечный вид такой, ребят вы боги, я глупил не сохранил и обработку и пробывал .. . )
40 Coldboy
 
19.10.12
17:38
(38) не канает, пробывал там появляется в разделении ГГГГММДД и часов T буква.
41 Fragster
 
гуру
19.10.12
17:39
(40) ну и что? это одна из официальных нотаций