Здравствуйте, друзья! Пожалуйста, HELP ME! Я ничего не понял. Проблема в следующем: когда я из программы делаю SQL запрос к базе данных (InterBase) вида 'INSERT INTO MYTABLE VALUES ('1', 'Не важно что, главное кириллицей'), то получаю много страшных ругательств о том, что 'arithmetic exception, numeric overflow, or string truncation Cannot transliterate character between character sets'. Я, в общем, понимаю, что косяк связан с кириллицей (т.к. сообщение такой же длины на латинице проблем не вызывает). Но самое интересное, что когда я пишу ту же самую строку непосредственно в консольке (кривыми ручками), то строка спокойненько добавляется к таблице. В чем проблема? Где я ошибаюсь? З.Ы. Для обработки запросов использую TIBSQL. Первое поле таблицы - integer, второе - varchar (64), набор символов ставил Win1251. Большое спасибо всем, кто
откликнется!
Добрый день, Samum2000! ИМХО ты забыл указать имена полей в запросе... каким полям ты передаешь значения??? Если такой запрос вообще работает, то мне даже интересно как.... Удачи! Ответ отправлен: 23.01.2004, 14:56 Отправитель: Vdr Отвечает Bob Johnson
Доброе время суток, Samum2000! Посмотри, чтобы у самой БД стоял такой набор символов. Если создаешь таблицу сам, делай так: /* creating database */ set names WIN1251; create database '1.gdb' user 'SYSDBA' password 'masterkey' page_size 4096 default character set WIN1251; И проблем быть не должно. Далее - в параметрах компонента TIBDatabase добавь строку lc_ctype=WIN1251: mdb->Params->Add ("lc_ctype=WIN1251");
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 25.01.2004, 22:44 Отправитель: Bob Johnson Отвечает kvINT
Здравствуйте, Samum2000! Первое, что пришло в голову - в свойстве Params компонента TIBDatabase добавить строку lc_ctype=WIN1251 (возможно, что 1251 у тебя поставлено только в интербейсе).
Ответ отправлен: 23.01.2004, 06:50 Отправитель: kvINT
Вопрос № 1266
Добрый день Большое спасибо всем откликнувшимся экспертам на вопрос о работе в Delphi с Blob-полями. Возможно я некорректно высказался но у меня проблема состоит вот в чем. Я делаю все как вы написали (через BDE или ADO), но и в первом и втором случае ничего не считывается. В базе данных Access cохраняю рисунки в формате bmp и все равно выдается ошибка Bitmap image is not valid. Может я что не так делаю? Если Вас не затруднит, наведите пример БД Access с одним Blob-полем (картинкой) и пример на Delphi для его считывания (отображения). С уважением Mike
Добрый день, Mike! 1. Большое подозрение, что то, что содержиться в BLOB поле - не рисунок bmp. Такая ситуация возникает, если создавать базу в Accesse и оставить его свойства по умолчанию. Видимо Дельфи не понимает вид поля "Связывание". 2. Возможно, что при вставке рисунка в Accesse, туда вставился линк, а не рисунок. Следующая вешь у меня работала безотказно: ADOTable1.Edit; AdoTable1foto.LoadFromFile('c:autor.bmp'); ADOTable1.Post; при этом в DBImage появлялся рисунок. ---- Более толково я объяснить не смогу, так как никогда подобным вопросом не занимался и рисунки в самой таблице не хранил, а только тектовую ссылку на рисунок, т.к. обработка рисунков в базе занимает больше времени, чем обработка рисунка на диске :)). Ответ отправлен: 22.01.2004, 12:59 Отправитель: sir henry
Вопрос № 1267
Доброе время суток. Вопрос таков: в Delphi 5 сделал связь master/detail между двумя таблицами (TIBTable и Firebird 1.5 Superserver) с помощью стандартного механизма. Всё работало. При переносе в Delphi 6 работать перестало. Ошибок никаких не выдаёт, а подчиннёная таблица всегда пустая. В чём проблема? Можно сделать тоже самое с помощью фильтров, но не хочу... Заранее благодарю...
Приветствую Вас, dem! Попробуйте в D6 убрать все связи между таблицами и создать их заново. На всякий случай, сделайте тоже самое с помощью фильтров и посмотрите, будет ли работать, а то может быть это Вам террористы подгадили, опустошили вторую таблицу :)). Ответ отправлен: 26.01.2004, 04:40 Отправитель: sir henry
Вопрос № 1268
всем привет. как быстро в delphi считать в TMemo не_текстовой файл с диска? я считываю так:
var f:file of byte; b:byte ... while filesize(f)<>filepos(f)do read(f,b);
Приветствую Вас, Zensor! Быстрее использовать нетипизированный файл и BlockRead, либо потоки:
Приложение: Ответ отправлен: 24.01.2004, 10:05 Отправитель: Boriss Отвечает Pawel
Приветствую Вас, Zensor! Можно через TFileStream. Ответ отправлен: 24.01.2004, 13:36 Отправитель: Pawel Отвечает sir henry
Приветствую Вас, Zensor! TMemo.LoadFromFile(имя_файла); Считывает из любого, хоть текстового, хоть не текстового. Ответ отправлен: 26.01.2004, 04:50 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.