0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28

Не работает временная таблица

10.04.2013, 12:49. Показов 2117. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

У меня C++ Builder 6, MS SQL 2005.

Я никогда с временными таблицами не работал.

Создал временную таблицу вот таким запросом :
C++
1
   query->SQL->Add("CREATE TABLE #Temp(id INT PRIMARY KEY, dlabel datetime, object varchar(50),label int, number int, priznak int)");
Это я сделал в программе, при настройке программы - до начала ее работы.
С соединением к БД там все ОК, также с датой там все ОК - на НЕ временных таблицах проверено.

Далее делаю вот так:
C++
1
2
3
4
5
6
7
 
query->Close();
query->SQL->Clear();
query->SQL->Add("SET DATEFORMAT dmy");
query->SQL->Add("DECLARE @dt datetime");
query->SQL->Add("SET @dt=convert(datetime, '"+dtt+"', 103)  ");
 query->SQL->Add("insert into #temp values(@dt, '"+id+"',"+label.ToInt()+","+number.ToInt()+",0)");
Пишет такую ошибку:
Column name or number of supplied values does not match table definition
В отладчике значения переменных
dtt, а стало быть @dt= "12.12.2012 21:24:00" - String
id- String
label- String
number- String

Подскажите, что я делаю не так?
И можно ли эту таблицу увидеть в SQL Management Studio ? Запросом SELECT оно ее не видит.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2013, 12:49
Ответы с готовыми решениями:

Временная таблица
Всем привет.Помогите,пожалуйста.Только начали проходить БД.Совсем не получается. Нужно вывести во временную таблицу значение системной...

Временная таблица
Попытался создать временную таблицу. Почемуто не работает. Это работает: $query = mysql_query("SELECT `idd` `namea` FROM...

Временная таблица из запроса
Всем привет! Я осуществляю выборку во временную таблицу. Результат выглядит так: Опыт | Дата проведения | Результат 15 ...

11
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 13:43
SQL
1
CREATE TABLE #Temp
и
SQL
1
"insert into #temp
Ничего в глаза не бросается?
0
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28
10.04.2013, 14:59  [ТС]
Цитата Сообщение от Oxotnuk Посмотреть сообщение
SQL
1
CREATE TABLE #Temp
и
SQL
1
"insert into #temp
Ничего в глаза не бросается?
Мне показалось вы намекаете что может с маленькой буквы ... но после того как я исправил, то не помогло ...
Также показалось, что может нужно было "into table" ... но и так не работает.

А что еще я недоглядел?
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 15:23
Вообщем смотри,если не в этом бок,посмотри,есть ли на табличке тригер какой то,если нет, то проверь.
Когда ты создаешь табличку,
SQL
1
CREATE TABLE #mytable (a INT, b VARCHAR(5),c INT )
записи ты должен вставлять в таком же порядке
SQL
1
INSERT INTO #mytable (a,b,c) VALUES (1,"hello",1)
1
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28
10.04.2013, 15:48  [ТС]
Сделал вот так:
C++
1
2
3
 query->SQL->Add("insert into  
                          #Temp(dlabel, object, label, number, priznak) 
                          values(@dt, '"+id+"',"+label.ToInt()+","+number.ToInt()+",0)");
То запрос отрабатывает вроде ... в Билдере не показывает ошибку ...
Но вот пытаюсь в SQL Servere выбрать:
SQL
1
SELECT * FROM tempdb.dbo.#Temp
то оно вот такое пишет:
Database name 'tempdb' ignored, referencing object in tempdb.
Msg 208, Level 16, State 0, Line 1
Invalid object name '#Temp'.
И еще делаю вот так в программе:
C++
1
ch= query->Fields->FieldByName("object")->AsString;
Выдало вот такое сообщение об ошибке:
exception class EDatabaseError with message 'query: Field 'object' not found'.
Но ведь поле object оно то есть ....
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 15:51
Попробуй это сделать,не через билдер,а через какую то утилиту сервера.
Просто там же при работе с темпдб, есть варианты указания,сколько таблица эта будет хранится,на сеанс,или еще на что-то.
Вообщем возможно к тому времени,когда ты делаешь SELECT,она уже там просто не присутствует.
Ну и пологике вещей,если ты делаешь темп таблицу, то к ней ты обратишься,только из под одного LOGIN'а. Ты это все учел?
1
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28
10.04.2013, 16:01  [ТС]
Цитата Сообщение от Oxotnuk Посмотреть сообщение
Ты это все учел?
Да, это подходит. У меня программа выбирает файлы во временную таблицу, потом они будут обрабатываться. Мне подходит что потом ее нет, я даже сам буду удалять.

Но вот дело в том, что теперь сделал это внесение НЕ во временную таблицу - создал НЕ временную и в нее записал ... посмотрел - строка добавилась ...

Но вот снова делаю вот это
C++
1
ch= query->Fields->FieldByName("object")->AsString;
А оно снова пишет что нету такого поля object ... вроде должно нормально выбрать. Что не так?
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 16:06
Сделай,плиз запрос, без ch= query.
А вот так
SQL
1
2
USE tempdb
SELECT object FROM #Temp
что скажет?
0
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28
10.04.2013, 16:19  [ТС]
Цитата Сообщение от Oxotnuk Посмотреть сообщение
что скажет?
Сделал вот так:
C++
1
query->SQL->Add("SELECT top(1) object FROM tTemp ");
Только это у меня не временная, а реальная уже tTemp.
То вобщем не ругнулось.
Но вот на этом ругается:
C++
1
 ch= query->Fields->FieldByName("object")->AsString;
object в таблице у меня тип char(20) , записывается в него типа вот такое "Строка 2"
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 16:25
Ну я не знаю,тяжело так,о чем то судить....
ты то наменял,то наменял, темп уже не темп)
не видя всего кода....
Нужно "щупать"
0
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 28
10.04.2013, 16:55  [ТС]
Цитата Сообщение от Oxotnuk Посмотреть сообщение
Ну я не знаю,тяжело так,о чем то судить....
ты то наменял,то наменял, темп уже не темп)
не видя всего кода....
Нужно "щупать"
Вобщем как обычно гениальность часто бывает в простоте .... нужно было сделать:
C++
1
zapros->Open();
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
10.04.2013, 16:58
Vilal,
Ну понятное дело,когда селект делаешь нужно использовать Open)))
А когда, изменения ExecSQL
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2013, 16:58
Помогаю со студенческими работами здесь

Временная таблица и СГРУППИРОВАТЬ ПО
Всем привет. 8.2 ЗиК. Надо получить количество дней которые должен отработать сотрудник по норме и которые отработал фактически., Для...

Временная таблица в php
Добрый день. Ситуация следующая, написал небольшой сайтик который выводит некоторые данные в нужном виде. Проблема вот в чем, все данные...

Временная таблица и ее апдейт
Здравствуйте! Есть таблица параметров main_table, которая формируется процедурой test. Внутри процедуры мы создаем временную таблицу...

Временная таблица или Вьюшка?
Правильно ли я понял, что MS Access не поддерживает временные таблицы (CREATE TEMPTABLE) и не поддерживает ВЬШКИ (CREATE VIEW)???

Где хранится временная таблица?
Доброго времени суток, ребята! Создал временную таблицу: create temporary table pogoda1 select pogoda.id_punkt,pogoda.t_day ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru