if(!mysql_real_connect(&conn, "localhost", "root", "", "InOut", 0, NULL, 0))
{
...
}
С чего начать изучение SQL
Я хочу научиться создавать и работать с базами, но вот не задачка: "С чего начать?". Подскажите что проще в освоении MS SQL или MSQL. Может кто знает умные статьи для чайников?
У меня есть программа, написанная мной на С. Она по сути отслеживает приход/уход сотрудников, если пользователь ничего не делает в течении n-ного кол. времени то фиксирует и это. Сейчас прога создает текстовый файл, дальше средствами JS и php я это обрабатываю и вывожу на сайт. Хотелось бы все это в базу. Соответственно какая база лучше?
В общем у меня было сделано так:
Код:
но проблема в том, что тогда постоянно при проверке соединения выполнялось само соединения, отсюда у меня и набегали подключения, и как потом выяснилось кушалась память.
Мне пришлось сделать сл.:
-выполнить connect;
-перед каждым запросом проверять некий параметр
Код:
if(mysql_ping(&conn)!=0)
{
...
reconnect
...
}
{
...
reconnect
...
}
данная команда (mysql_ping() ) работает только после хотя бы одной попытки подключения. А я до этого пробовал сначала проверять соединение, ну и естественно ничего не получалось.
Если кто сталкивался с такой проблемой, буду рад почитать о ваших подходах к ее решению.
Огромное спасибо всем за помощь.
Осталось оттестировать и в путь.
По поводу самого MySQL, если я хочу, чтоб внутри базы постоянно проводились какие то операции между ячейками разных таблиц (например в одной таблице всегда была авто сумма всех значений из другой таблицы)-что для этого необходимо?
С MYSQL я немного разобрался. Помогите разобраться с MS SQL.
Трудность в следующем. Есть некая база (продукт компании megatec). Я хочу с этой базы делать выборку.
Создатели уверяют, что база полностью открыта, и мол делайте с ней чего угодно, однако я никак не могу понять где там что хранится. Есть ли возможность в MS SQL просматривать содержимое таблиц (что-то на подобии просмотра в MyAdmin). Я поставил MS SQL Server Management Studio Express (v9.), подключился к базе, могу просматривсать структуру таблиц, однако само содержимое не найти. Может я чего не правильно делаю?
[ATTACH=CONFIG]4986[/ATTACH]
Видать мой вопрос был слишком приметивен. Я как-то раз сталкивался с MS SQL, мне казалось, чтоб открыть содержимое, необходимо нажать F5, и не как по другому. Правой кнопкой воспользоваться не догадался )))
F5 нажимают четкие пацаны вроде hardcase, когда введут запрос ;) чего и вам советую!
Нда, понятие четкости в наше время девальвировано :D
Код:
$res = mssql_query("Select dbo.Payments.PM_ID, dbo.Payments.PM_DocNumber, dbo.Payments.PM_SumTarget, dbo.Clients.CL_FirstName, dbo.Clients.CL_MiddleName, dbo.Clients.CL_Name, dbo.Countries.CN_Name
from dbo.Payments, dbo.Clients, dbo.Agreements, dbo.Countries
where dbo.Payments.PM_Date='3/15/2011 12:00:00 AM' and dbo.Payments.PM_SumTarget>'0' and dbo.Clients.CL_ID=dbo.Payments.PM_CL_ID and
dbo.Agreements.AG_Code=dbo.Payments.PM_DocNumber and dbo.Countries.CN_ID=dbo.Agreements.AG_CN_ID
group by dbo.Payments.PM_ID, dbo.Payments.PM_DocNumber, dbo.Payments.PM_SumTarget, dbo.Clients.CL_FirstName, dbo.Clients.CL_MiddleName, dbo.Clients.CL_Name, dbo.Countries.CN_Name");
while ( $w = mssql_fetch_array($res) )
{
echo "<tr>";
echo "<td>".$w["PM_ID"]."</td><td>".$w["PM_DocNumber"]."</td><td>".$w["PM_SumTarget"]."</td><td>".$w["CL_FirstName"]."</td><td>".$w["CL_MiddleName"]."</td><td>".$w["CL_Name"]."</td><td>".$w["CN_Name"]."</td>";
echo "</tr>";
}
from dbo.Payments, dbo.Clients, dbo.Agreements, dbo.Countries
where dbo.Payments.PM_Date='3/15/2011 12:00:00 AM' and dbo.Payments.PM_SumTarget>'0' and dbo.Clients.CL_ID=dbo.Payments.PM_CL_ID and
dbo.Agreements.AG_Code=dbo.Payments.PM_DocNumber and dbo.Countries.CN_ID=dbo.Agreements.AG_CN_ID
group by dbo.Payments.PM_ID, dbo.Payments.PM_DocNumber, dbo.Payments.PM_SumTarget, dbo.Clients.CL_FirstName, dbo.Clients.CL_MiddleName, dbo.Clients.CL_Name, dbo.Countries.CN_Name");
while ( $w = mssql_fetch_array($res) )
{
echo "<tr>";
echo "<td>".$w["PM_ID"]."</td><td>".$w["PM_DocNumber"]."</td><td>".$w["PM_SumTarget"]."</td><td>".$w["CL_FirstName"]."</td><td>".$w["CL_MiddleName"]."</td><td>".$w["CL_Name"]."</td><td>".$w["CN_Name"]."</td>";
echo "</tr>";
}
, теперь хочу перенести его в C++. Уже третий день ищу как на C++ подключиться к MSSQL. Нигде не могу найти. Выяснил, что есть целая куча способов, однако не могу найти ни примера, ни толкового описания. Может есть у кого пример соединения с базой MSSQL через С++?
http://forum.sources.ru/index.php?showtopic=152117, там говорится про необходимость подключения библиотек и импорт. Компилятор не выдает ошибок, однако при запуске ругается на _CrtIsValidHeapPointer(pUserDate). Что это значит?
Нашел статью
Код:
_bstr_t strConn = "Provider=sqloledb;Data Source=(local);Initial Catalog=pubs";
Уже как только не пробовал. На сайте http://www.kgcoder.org/index.php?option=com_content&task=view&id=14&Itemid=92 пишут, что все так и должно быть. Компилируется нормально, а запускаться не хочет:mad:
Мне кажется стоит обратиться в форум по c++. Больше вероятность что помогут.
Данный вопрос я задал в разделе VC++. А среди обитателей в данном разделе есть люди, которые подключались к MSSQL с помощью каких либо языков программирование (не web)?
Мне в принципе все равно на чем писать, основные требования: возможность подключиться к MSSQL и возможность работы с MS Excel.
Я вот с с++ дело имел (конкретно средой и компилятором от борланд), но относительно давно, и в связке с сиквел сервером тогда не работал.
А сейчас на си-шарпе оченно активно взаимодействуем-с и в виндоус приложениях, и в веб, и в каких хошь. С экселем тоже нет проблем работать при помощи си-шарп и библиотек классов .нет - так что смотрите сами, если не в курсе что это такое - почитайте в инете и решите насколько оно вам подходит для вашей задачи.
Я пробовал среду VC 2010 (без приставки С++), там коннект с базой устанавливается при создании проекта, однако что делать дальше мне было ну совсем не понятно. Я сегодня пол дня разбирался. Не получается.
Цитата: imAlex
Я так понял, что си-шарп это c#. А в какой среде работаете? И, если не сложно, приведите пример коннекта c MSSQL.
Я пробовал среду VC 2010 (без приставки С++), там коннект с базой устанавливается при создании проекта, однако что делать дальше мне было ну совсем не понятно. Я сегодня пол дня разбирался. Не получается.
Я пробовал среду VC 2010 (без приставки С++), там коннект с базой устанавливается при создании проекта, однако что делать дальше мне было ну совсем не понятно. Я сегодня пол дня разбирался. Не получается.
Да c#. Не знаю что такое "VC 2010", может вы имели ввиду VS 2010? Т.е. Visual Studio 2010? Там есть разные возможности по установке коннекта, но суть одна. Вот я вам накидал на 2008 студии тестовый пример в котором демонстрируется соединение с бд, открытие транзакции, запрос, закрытие транзакции и соединения. Если в 2010 студии его будете открывать - он влегкую сконвертируется автоматически. так что разбирайтесь, там все не сложно.
Может ты даш себе труд хотябы прочесть то, ты сам же привел по ссылке? Или не осилил?
Цитата:
No build assemblies contain components to inherit from. Build the current application, or click Browse end select a previously build assembly from another application.
но в принципе не страшно. Позже скачаю полную версию, думаю там все заработает.
Уважаемый kot_, не совсем понял про что Вы? Я полностью прочитал и выполнил все по той ссылке. К сожалению результата тем самым не добился.
Количество колонок: dr.FieldCount, а как количество строк? Я нашел, этот параметр выводится в дебаге при наведении на массив (ResultsView->Static Members->Non-Public member->_obgectTypeCount).
Кол-во строк обработанных/возвращенных запросом можно получить прочитав после запроса переменную @@rowcount. Если интересует какое свойство в клиентских компонентах содержит в себе кол-во строк - это в форум по этим комонентам. Тут все-таки давайте придерживатсья вопросов серверной стороны.
Код:
Select Number
from dbo.Num
where Number='*1234'
from dbo.Num
where Number='*1234'
То есть, имеется таблица Num, в ней есть столбец Number а в нем есть запись "00001234". Как зная последние цифры можно найти значение целиком? Или если их несколько, то все совпадающие.
WHERE Number LIKE '%1234'
Если это действительно Number, то достаточно взять остаток от деления на 10000.
На самом деле тип данных text, а в нем лежат номера с буквами и цифрами сл. вида: GFR0001234. Длинна номера может меняться (к сожалению по неизвестному алгоритму). Нужно создать запрос, который по совпадению символов вернет номер целиком. Например при запросе найти все номера с встречающимся сочетанием 1234, должны вернуться GFR0001234, DRG00612345 и т.д.
Уважаемый UAS, прошу прощения, за то, что я не заметил ваше сообщение. Это именно то, что было необходимо.