Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Эскейп символов в запросе


Автор: Vidocq 2.3.2006, 14:12
Код

strOpen = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Usoltseva.mdb"
strSQL = "INSERT INTO operation_results ([Data], [Dohod], [VyplSum], [Ostatok]) VALUES(" & datanach & ", " & [dohod] & ", " & [vyplsum] & ", " & [ostatok] & ")"
Debug.Print strSQL


Set cnn = New ADODB.Connection
cnn.Open strOpen

Set cmd = New ADODB.Command
Set cmd.ActiveConnection = cnn
cmd.CommandText = strSQL
cmd.Prepared = True
cmd.Execute



Проблема в том, что при дебаге strSQL получается:
Код

INSERT INTO operation_results ([Data], [Dohod], [VyplSum], [Ostatok]) VALUES(02.03.2006, 6,16, 6300, -6294)

То есть из-за запятых в числах вылазит ошибка Number of query values and destination fields are not the same.

Как мне проэскейпить запятые?

Заранее благодарен.

Автор: Exception 2.3.2006, 14:32
А что вообще такое за [dohod], etc? Числа? Если да, зачем ты их берешь в квадратные скобки? Просто заменяй все запятые в этих строчках точками, и все будет ОК smile

Автор: Vidocq 2.3.2006, 14:51
Exception,
числа в полях формы вычисляются по полям в БД. Я руками их не ввожу

Автор: Exception 2.3.2006, 16:03
Я же сказал: перед выполнением запроса заменяй все запятые точками. Replace тебе в руки.

Автор: Vidocq 2.3.2006, 16:51
Exception,
а если там не будет запятых? (Я же не знаю, что получится в результате вычитания двух чисел) ...

Автор: Vidocq 2.3.2006, 17:39
Переписал запрос так:
Код

strSQL = "INSERT INTO operation_results (Data, Dohod, VyplSum, Ostatok) "
strSQL = strSQL & " VALUES(" & "'" & datanach & "'" & ", "
strSQL = strSQL & Replace(dohod, ",", ".") & ", "
strSQL = strSQL & vyplsum & ", " & ostatok & ")"


ну и кривизна, блиииин

Проблема решилась

Автор: Akina 2.3.2006, 18:01
Цитата(Vidocq @ 2.3.2006, 18:39 Найти цитируемый пост)
ну и кривизна, блиииин

а при чем тут кривизна? у тебя локация русская? значит, делитель десятичный - запятушка... выясняй, какого дьявола у тебя этот твой dohod приходит стрингом, а не чисельно - грабли твои именно отсюда...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)