Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Cache Date type и С#  [new]
joing777
Member

Откуда:
Сообщений: 11
Всем привет, делаю .net приложение на c#
В программировании не силен, начинающий
Ситуация такая в моем случае имеется сырая обертка, хочу сделать - связанные таблицы. Есть одна таблица gridview с именами и фамилиями(Human.Personal), но не могу понять как сделать связанную таблицу gridview2 которая находится на другой форме, где по вызову либо из программы по строке или по id, можно было бы увидеть раскрытую информацию во 2 таблице (личная информация Human.PersonalBook).
Изначально на форме-1 есть gridview и вызов таблицы осуществляется следующим кодом где
CacheConnection CacheConnect;
CacheDataAdapter conAdapter;
private void button5_Click(object sender, EventArgs e)
        {
            string select = "select ID, City, Firstname, Middle, Phone, Surname from Human.Personal";
            string insert = "insert into Human.Personal (City, Firstname, Middle, Phone, Surname) values (?, ?, ?, ?, ?)";
            string update = "update Human.Personal set City = ?, Firstname = ?, Middle = ?, Phone = ?, Surname = ? where ID = ?";
            string delete = "delete from Human.Personal where ID = ?";

            conAdapter = new CacheDataAdapter(select, CacheConnect);

            conAdapter.UpdateCommand = CacheConnect.CreateCommand();
            conAdapter.UpdateCommand.CommandText = update;
            AddParams(conAdapter.UpdateCommand, "City", "Firstname", "Middle", "Phone", "Surname", "ID");

            conAdapter.InsertCommand = CacheConnect.CreateCommand();
            conAdapter.InsertCommand.CommandText = insert;
            AddParams(conAdapter.InsertCommand, "City", "Firstname", "Middle", "Phone", "Surname");

            conAdapter.DeleteCommand = CacheConnect.CreateCommand();
            conAdapter.DeleteCommand.CommandText = delete;
            AddParams(conAdapter.DeleteCommand, "ID");

            conAdapter.Fill(dataset1, "Personal");

        }


Как можно заметить среди прочего, нет колонок с датой (тип date). В cache студии создал еще один класс Human.PersonalBook унаследованный от Human.Personal но как реализовать связь в программе не могу понять и как работать с переменными с типом Date (свойство класса Property Date As %Date которое SQL запросами не вызывается ошибка: "Ожидается (, обнаружено ,^ SELECT ID , DATE ," . Помогите разобраться, в инете тоже информацию не могу найти. Возможно нельзя Свойства называть "Date", прошу пояснить нужно ли гдето преобразовывать этот тип ?
4 дек 17, 16:47    [21004985]     Ответить | Цитировать Сообщить модератору
 Re: Cache Date type и С#  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2583
joing777,

В документации, Cписок зарезервированных слов в SQL
Желательно переименовать поле, или можно использовать двойные кавычки для таких свойств.
select ID, "Date", City, Firstname, Middle, Phone, Surname from Human.Personal
4 дек 17, 17:21    [21005087]     Ответить | Цитировать Сообщить модератору
 Re: Cache Date type и С#  [new]
joing777
Member

Откуда:
Сообщений: 11
DAiMor,

Да, спасибо, переименовал, получилось, но теперь проблема возникает с тем, что в с# формат отображения в gride 10.10.2010 а в таблицах каше дата сохраняется в формате 10/10/2010 и при попытке в каше в портале управления системой завести в формате 10.10.2010 выходит ошибка

[SQLCODE: <-146>:<Не удалось конвертировать введенное значение в Логический формат Даты>]

[%msg: <Error: '10.10.2010' is an invalid DISPLAY Date value>]

Т.е. при загрузке данных в datagridview методом из 1 поста дата не отображается в программе, ячейка пустая. При попытке перезаписать в программе используя формат 10.10.2010 выходит ошибка,

<-25>:<Обнаружен ввод выражения после окончания запроса>]
[Location: <Prepare>]
[%msg: < Обнаружен ввод выражения (ИДЕНТИФИКАТОР) после окончания запроса^update Human . PersonalBook set Bilet = :%qpar(1) , NumberBook = :%qpar(2) , Books = :%qpar(3) , Daten = :%qpar(4) , Daysn = :%qpar(5) Quantity>]"


формат автоматически исправляется с 10/10/2010 на 10.10.2010, в свойствах колонок такого формат нет вообще.

К сообщению приложен файл. Размер - 31Kb
4 дек 17, 17:52    [21005164]     Ответить | Цитировать Сообщить модератору
 Re: Cache Date type и С#  [new]
eduard93
Member

Откуда:
Сообщений: 161
joing777, посмотрите примеры работы с C# в папке: <instance>\dev\dotnet\samples\, например в классе <instance>\dev\dotnet\samples\adoform\csharpado\frmADONET.cs в методе btnUpdate_Click есть такой код:

CacheParameter	pDOB	= new CacheParameter();
pDOB.ParameterName		= "DOB";
pDOB.CacheDbType			= CacheDbType.Date;
pDOB.Direction			= ParameterDirection.Input;
pDOB.Value				= txtDOB.Text;
4 дек 17, 18:59    [21005300]     Ответить | Цитировать Сообщить модератору
 Re: Cache Date type и С#  [new]
joing777
Member

Откуда:
Сообщений: 11
eduard93,

Спасибо дорогой друг, понял ошибки, исправил + я пропустил одну колонку.

Вопрос основной решил выборкой SQL запросом по ID
4 дек 17, 20:25    [21005480]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить