12:12

Таблицы, цель которых состоять из внешних ключей, структурируются так:
1. Если записи этой таблицы не используются как справочники в других таблицах, то отдельного поля для ID лучше не создавать.
2. Определить, какие поляне должны быть нулевыми.
3. Первичный ключ накладывается на несколько внешних полей, которые должны быть уникальными.

читать дальше

@темы: oracle, sql

00:44

Возможность редактировать запирается на 3-х уровнях: поле DataColumn в мастере датасета, визуальный элемент управления DataGrid, его столбец Column.

Не знаю, где были глаза. Сохранение данных в БД - дискета в навигаторе.


@темы: c#, БД, Visual Studio

читать дальше

@темы: oracle, sql, join

22:01

Запрос

Формирование запроса в дататэйбле хранится в свойствах методов Fill, Get. Это нижняя строчка DataTable в DataSet1.xsd.

@темы: Visual Studio

21:06

Немного прояснилось с принципами Visual Studio. Не все доступные настройки (свойства) находятся в окне свойств компонента.
Вернее даже так. Они будут там находится, но для начала компонент должен быть открыт в визуальной части формы. Иначе будет доступен только огрызок.
Или можно воспользоваться смарт-подсказками настройки. Или конструкторами-мастерами, внимательно вчитываясь в предоставленные опции.
Вернее даже так. Некоторые компоненты просто спрятаны, так что они не доступны на форме прямо. Но как раз через смарты можно подступиться к каким-нибудь их свойствам. Например, датасет хранит в себе дататэйблы, но в форму выводит только табличные адаптеры, которые в свойствах
ничего существенного не несут. ОДнако их смарты, дают добавться до мастера, черех который можно получить достук к самим дататэйбдам (хотя опять таки через настрйоку табличного адаптера).
Да, запутано.
Или даже так. Некоторые свойства никогда не доступны в окне свойств.
Таки есть. Просто некоторые свойства - свойства вторично припрятанных компонент. Т.е. на визуальной форме бокс на самом деле состоит из нескольких компонент. Надо точно стать на нужный.


Delphi проще. Можно воспользоваться мастерами, но все свойства компонента легко доступны прямо в окне свойстсв компонента.

@темы: DELPHI->Visual Studio

В источнике данных выбрать "Изменить набор данных в конструкторе". На открывшейся форме в контекстном меню "Добавить TableAdapter". Откроется мастер настройки табличного адаптера. Оставив текущую строку соединения, создать запрос, соединяющий таблицы.

В источнике данных в датасете появится новая таблица.

@темы: c#, связь таблиц, Visual Studio

#2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен)

1.Если в файле
C:\WINDOWS\system32\drivers\etc\hosts
нет строчки
127.0.0.1 localhost
то phpMyAdmin может не работать "зависать" и выдавать ошибки, например:
#2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен)
(c)www.sysbox.ru/server/

2.Не запущена служба MySql. Возможно в start-webserver.bat указано неполное имя службы. Проверить в Администрирвоание->Службы.

@темы: apache, phpmyadmin, mysql, php

Чтобы в bindingSource стал доступен новый список таблиц датасета из отображающийся в источнике данных необходимо у датасета проекта изменить набор данных в конструкторе

@темы: Visual Studio, sql


Тот случай, когда говорят не "Эврика!", а "Аллилуйя!!!"

@темы: DELPHI->Visual Studio, связь таблиц, Visual Studio, sql

Функция concat поддерживает не более 2-х аргументов
select concat(concat(mvideo.TIMEVH, mvideo.TIMEVM),':';)
from mvideo


А оператор || нет. :)
select mvideo.TIMEVH||':'||mvideo.TIMEVM||':'||mvideo.TIMEVS timev
from mvideo

Оператор + автоматически преобразует строковые типы в числовые и выполняет арифметическое сложение.

Создание представления
CREATE OR REPLACE VIEW MAIN_VIDEO
(IDVIDEO, NAMEO, FIDLANG0, TIMEVH, TIMEVM,
TIMEVS, RDATE, SIZEV, FIDKOD, VIDEOCO,
AUDIOCO, ZMIST, EXT, FIDKATEGORIA, COMM,
FIDRELIZ, TIMEV, LANG, KOD, RGROUP,
KATEGORIA)
AS
SELECT mvideo."IDVIDEO",mvideo."NAMEO",mvideo."FIDLANG0",mvideo."TIMEVH",mvideo."TIMEVM",mvideo."TIMEVS",mvideo."RDATE",mvideo."SIZEV",mvideo."FIDKOD",mvideo."VIDEOCO",mvideo."AUDIOCO",mvideo."ZMIST",mvideo."EXT",mvideo."FIDKATEGORIA",mvideo."COMM",mvideo."FIDRELIZ",
mvideo.timevh || ':' || mvideo.timevm || ':' || mvideo.timevs timev,
dlang.lang, dkod.kod, dreliz.rgroup, dkategoria.kategoria
FROM mvideo, dlang, dkod, dreliz, dkategoria
WHERE mvideo.fidlang0 = dlang.idlang(+)
AND mvideo.fidkod = dkod.idkod(+)
AND mvideo.fidkategoria = dkategoria.idkategoria(+)
AND mvideo.fidreliz = dreliz.idreliz(+)
/



@темы: view, oracle, sql, join

Элемент сетка Grid создаётся из элемента listView1.View = Details;

@темы: DELPHI->Visual Studio

1. Создать табличное пространство (название табличного пространства, имя и путь к файлу, в котором оно будет храниться).
SQL




2. Создать пользователя-владельца будущей схемы и её объектов, раздать ему права доступа.
TOAD (имя и пароль, права на табличные пространства, гранты: connect, resource, unlimited tablespace)
SQL




3. Создать сиквенсы для всех ID таблиц.
SQL








4. Создать таблицы от нового пользователя. От родительских таблиц-словарей до дочерних таблицы с основными данными и до ещё более дочернего набора из этих таблиц.
Принцип: Таблица с Данными 1=>Таблица, которая использует данные1 для заполнения своих данных 2=>Таблица, которая использует данные2 для заполнения своих данных 3.




4.1 Родительские таблицы словари.
TOAD - имя таблицы (указать табличное пространство, если оно не дефолтное), столбцы, первичный ключ (его уникальность и добавление первичного индекса TOAD добавит самостотельно) и остальные уникальности; триггер BEFORE INSERT IGNORE для заполнения ID, триггер AFTER INSERT IGNORE (если нужен аудит).




SQL




4.2 Главная таблица


читать дальше

@темы: oracle, sql

16:56

В отдельную ячейку невозможно непосредственно поместить несколько элементов управления. Однако в нее можно поместить другой контейнерный элемент управления, например РапеІ, а затем поместить требуемые компоненты в этот вложенный контейнер.

Правильный выбор Split и Panel.

@темы: Visual Studio

14:32

Если устновить значение свойства ТаЬЗІор равным False, то элемент управления будет пропускаться при нажатии клавиши <ТаЬ> и пользователь не сможет установить него фокус, не используя мышь.


@темы: TabOrder

17:25




@темы: provider, Visual Studio

Сегодня при написании обработки загрузки данных из MS Access в 1С, столкнулся со следующей проблемой:

была необходимость узнать версию драйвера ODBC для Access, но оснастка Windows для управления источниками ODBC не знакома с драйверами Access'a (несмотря на то, что я отдельно ставил Access Database Engine для работы с .mdb файлами, созданными в MS Access 2007. При входе в «Источники данных (ODBC)» можно было добавить драйвер только для SQL Server'а. Все это сопровождалось сообщением «Не удается найти программы установки для драйвера ODBC Microsoft Access driver (*.mdb). Переустановите драйвер.»

Гугл подсказал, что в Vista/Windows7 x64 есть две копии odbcad32.exe, один из них находится в "C:\Windows\syswow64\", а другой в "C:\Windows\system32\". Открывая, как обычно, «Источники данных (ODBC)» через Панель управления — Администрирование, мы открываем второй вариант odbcad32.exe, то есть тот, который располагается в "C:\Windows\system32\" и в итоге у нас нет нужного нам драйвера ODBC.

Решение: необходимо открыть вот этот файл "C:\Windows\syswow64\odbcad32.exe". Там без особых проблем можно установить MS Access ODBC driver.
inq-brc.ru/index.php/ugol-prog/580-access-odbc-...

От себя добавлю: который будет отображаться и в версии "C:\Windows\system32\"

@темы: x64, Provider

Поставщик Microsoft OLE DB для Jet и драйвера Microsoft Access ODBC доступны только в 32-разрядных версий
support.microsoft.com/kb/957570

@темы: Data, Visual Studio

public class Com
{
public string StrCom;
public byte ByteCom;
public void Com(string strCom, byte byteCom)
{
StrCom = strCom;
ByteCom = byteCom;
}
}
public static Com[] MyCom=new Com[2]
{
new Com("Конфигурация",0x20),
new Com("Время",0x1B)
}



www.sql.ru/forum/actualthread.aspx?tid=138421


@темы: c#, структуры, массивы, Visual Studio

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace WindowsFormsApplication2

{

public partial class Translittering1 : Form

{



public Translittering1()

{

InitializeComponent();

}



private void Form1_Load(object sender, EventArgs e)

{

}





//Вариант 1

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

label1.Left = (Translittering1.ClientSize.Width - label1.Width) / 2;

}

/*

================================================================================================

Ошибка 3 Для нестатического поля, метода или свойства "System.Windows.Forms.Form.ClientSize.get" требуется ссылка на объект E:\Projects_LX\WindowsFormsApplication2\WindowsFormsApplication2\Translittering.cs 134 28 WindowsFormsApplication2
*/



//Вариант 2

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{
label1.Left = ((Translittering1 as Form).ClientSize.Width - label1.Width) / 2;
}

/*

================================================================================================

Ошибка 3 "WindowsFormsApplication2.Translittering1" является "тип", но используется как "переменная" E:\Projects_LX\WindowsFormsApplication2\WindowsFormsApplication2\Translittering.cs 134 29 WindowsFormsApplication2
*/



Почему название формы вляется типом, а не экземпляром (переменной) класса?

Почему к ней нельзя обратиться по имени, в то время как к остальным компонентам на форме можно?

@темы: c#, Trouble!