Архив

Архив раздела ‘Общее’

Отправка почты в C#

3 Февраль 2012 Нет комментариев

В предыдущем посте я писал о получении и чтении мейлов, теперь же речь пойдёт об отправке сообщений из того же . В целом, тут сложностей нет никаких. Нет необходимости искать какие-то внешние библиотеки и компоненты. .Net Framework содержит в своем пространстве имен все необходимое для формирования письма и его отправки по протоколу.  Прежде всего добавьте:

using System.Net.Mail;

Тут содержится все, что нам необходимо для отправки почты.

Далее приведу функцию, которая отправляет сообщение:

  void SendMess( subject, body, host, int port, user, pass, From, To,bool usessl)

{

try

{

MailMessage Msg = new MailMessage();

Msg.To.Add(To);

 

 

// From

System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress(From);

Msg.From = mailAddress;

Читать далее…

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
Categories: C#, Общее Tags: , ,

Снова в строю !

14 Январь 2012 Нет комментариев

Наконец-то выкупил доменное имя и восстановил свой блог. Ожидайте скоро много новостей :)

Во время восстановления наткнулся на проблему с обновлением . Оказывается, нужно было добавить строку

define(‘WP_TEMP_DIR’,'/tmp’); 

в файл конфига. Нужно было также добавить эту папку и дать на неё права на запись.

 

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
Categories: Общее Tags:

SQL Server Driver for PHP 1.1 — October 2009

27 Октябрь 2009 Нет комментариев

Майкрософт выпустил собственный драйвер для PHP, с поддержкой возможностей Native Client. Доступен также его исходный код:

http://sqlsrvphp.codeplex.com/SourceControl/ListDownloadableCommits.aspx#DownloadLatest

Сам драйвер можно тут:

http://www.microsoft.com/downloads/details.aspx?FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9&displaylang=en

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)

История одного восстановления БД(MS SQL Server 2005). Часть 2

22 Октябрь 2009 Нет комментариев

Продолжаю тему восстановления  БД, начатую тут. Закончилось всё довольно таки успешно.

Итак…. Не помог мне

ALTER DATABASE ‘DatabaseName’SET SINGLE_USER
(‘DatabaseName’, REPAIR_REBUILD)
ALTER DATABASE ‘DatabaseName’ SET MULTI_USER

не помог и

DBCC CHECKDB(‘DatabaseName’, REPAIR_ALLOW_DATA_LOSS)

Так как удалось найти битую таблицу(в ней как раз наибольшее кол-во строк), принялся её реанимировать нестандартными способами. Попробовал сделать выборку данных- выкинуло в ошибку, но успело вернуть несколько миллионов записей. Попробовал сделать выборку, с ключом desc — таким образом вытащил ещё кусок данных с конца таблицы. Кстати, select стал выбирать больше записей после того как убил все индексы кроме Primary Key. Пошаманив ещё несколько часов и не получив желаемого результата, создал клон битой таблицы без данных и с помощью:

insert into tablename(fields) select top КОЛ-ВО_СТРОК1 *  from tableoriginal order by fieldnamePK asc

insert into tablename(fields) select top КОЛ-ВО_СТРОК2 *  from tableoriginal order by fieldnamePK desc

заполнил новую таблицу данными. Старую удалил, а эту переименовал так как нужно.

Должен сказать, что таким образом удалось восстановить почти все записи.

Для остальных БД выполнил DBCC CHECKDB() , откуда узнал какие из таблиц битые. Им помогла DBCC DBReidex(‘Tablename’) для битых таблиц.

На этом всё и закончилось.

Желаю вам надёжных хардов и меньше подобных проблем!

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)

GPS мониторинг.

16 Октябрь 2009 Нет комментариев

Продолжаем работать с системами мониторинга. Скоро выйдет версия v2.0, с множеством новых функций, которые приятно удивят пользователей системы. Сейчас, упор как раз и делаем на онлайновую web версию. Она имеет ряд преимуществ по сравнению с классической оффлайновой версией. Пользователю системы не нужно дополнительное программное обеспечение, сервер с базой данных, а нужен лишь доступ в интернет и простой интернет браузер. При этом  открываются широчайшие возможности по мониторингу, анализу, контролю передвижения и прочие, которыми вы можете пользоваться  из любой точки мира с доступом в интернет. За считанные секунды вы получаете доступ к системе со всем её функционалом в независимости от вашего местоположения: дома, на работе, в отпуске на островах.

Не смотря на быстрое развитие WEB версии, не забываем и об оффлайновых системах. Для них мы разрабатываем новые отчёты, улучшаем интерфейс и интегрируем с такими картами как Google, Bing, Yandex и т.п.

В целом, нашу систему уже можно представить как гибрид — объединёние оффлайновой и онлайновой версии. При этом обе части полноценны.

Ознакомиться с WEB версией можно  тут: http://www.monitoring-gps.com.ua/gps_monitoring/index.php

Подробнее можно узнать тут: http://monitoring-gps.com.ua/

Продолжение следует…

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
Categories: Общее Tags:

История одного восстановления БД(MS SQL Server 2005)

15 Октябрь 2009 Нет комментариев

История началась с того, что умер винт в (0). Слава Богам, удалось создать виртуальный образ с помощью RAID Reconstructor от Runtime Software. С помощью приложения Captain Nemo(от того же Runtime Software) часов за 8-10(два винта по 300 ГБ) удалось построить структуру и файловой системы опираясь на виртуальный образ созданный RAID Reconstructor»ом. Ещё за несколько часов восстановились базы, общим весом около 10 ГБ. 70% работы, казалось бы, выполнено! Особо не радуясь, принялся восстанавливать сервер.

Взял новые винты. Установил ту же систему, тот же Server 2005 с тем же collation. Сделал Attach DataBase для всех восстановленных баз, кроме системных. Для того, чтобы избежать лишних проблем, базы нужно размещать в те же папки что и до того как система упала. Заменил базу master на свою восстановленную(о том как перемещать системные базы, в том числе master и MSDB, читал тут http://msdn.microsoft.com/ru-ru/library/ms345408.aspx; позже выложу у себя весь текст статьи).

Выполнил несколько селектов — кажется, всё ок.

Запускаю приложение, использующие эти базы… и на одной из форм получаю красивенький exception: «SQL Server detected a logical consistency-based i/o error: incorrect pageid».

Выполняю () — не спасло.

Пробую (‘DatabaseName’) - после ряда сообщений, команда прерывается с сообщением об ошибке:

Msg 8967, Level 16, State 216, Line 1
An internal error occurred in DBCC which prevented further processing. Please contact Product Support.

Выполнение остановилось как раз на самой большой таблице в базе.

Деваться некуда, запускаю

ALTER DATABASE ‘DatabaseName’SET SINGLE_USER
DBCC CHECKDB(‘DatabaseName’, REPAIR_REBUILD)
ALTER DATABASE ‘DatabaseName’ SET MULTI_USER

REPAIR_REBUILD-попробует восстановить БД без потери данных.

Жду завершения  выполнения команды.

Если не восстановит, буду пробовать

DBCC CHECKDB(‘DatabaseName’, REPAIR_ALLOW_DATA_LOSS)

Обязательно отпишусь чем всё закончилось. Ещё не выполнял DBCC CHECKDB(‘DatabaseName’) для остальных баз.

Продолжение следует….

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)

Поиск оптимального маршрута в Google Maps теперь для пользователей Украины!

3 Октябрь 2009 Нет комментариев

Наконец, стала доступной долгожданная функция поиска оптимального маршрута на картах Google по территории Украины!

Вы получаете возможность прокладки оптимального пути(для хотьбы или авто) по указанным пунктам назначения(до 25 точек). Сервис очень гибкий и удобный.  http://maps.google.com/

Использование данного сервиса не территории Украины стало возможным благодаря компании Transnavicom

API тут:  http://code.google.com/intl/ru/apis/maps/

VN:F [1.9.13_1145]
Rating: 10.0/10 (2 votes cast)

GPS Monitoring ONLINE

29 Сентябрь 2009 Нет комментариев

Работаем над Monitoring http://online.monitoring-gps.com.ua/.

Обновились вот до версии v1.2

 

Как-нибудь напишу о сложностях, с которыми пришлось столкнуться при проектировании БД.

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
Categories: Общее Tags: ,

MySQL 5.1 vs 5.4

25 Сентябрь 2009 Нет комментариев

За взялся и GOOGLE, что обнадёживает :)

Читая о новостях в разработке MySQL, наткнулся на несколько интересных статеек. Всем, кто имеет непосредственное отношение к БД, да и тем, кто раздумывает над выбором СУБД, рекомендую ознакомиться:

1. http://dev.mysql.com/doc/mysql-5.4-features/en/smp-improvements.html Scalability Improvements

2. http://dev.mysql.com/tech-resources/articles/mysql-54.html A Quick Look at MySQL 5.4; В статье приведены интересные графики сравнения веток 5.1 и 5.4 по производительности. Описаны улучшения, касающиеся подзапросов(кстати те, которых ждали от ветки 6.0, но так и не дождались :) ), JOIN и другого.

В бонус можно почитать о создании plugin для MySQL(аналог расширенных хранимых процедур в )

http://dev.mysql.com/doc/refman/5.1/en/plugin-api.html

Скачать MySQL 5.4 можно тут: http://dev.mysql.com/downloads/mysql/5.4.html

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)

Суммирование(конкатенация) строковых полей в MySQL

21 Сентябрь 2009 1 комментарий

Недавно понадобилось объединить в одну строку поле всех записей, возвращаемых запросом. Курсором по результату запроса проходить не хотелось, и я с радостью обнаружил существование такого оператора как

group_(). Его синтаксис:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

DISTINCT позволяет отобрать только уникальные записи. ORDER BY     ASC и DESC задают порядок сортировки. С помощью  SEPARATOR str_val можно задать разделитель для записей.

Пример:

> SELECT student_name,

-> GROUP_CONCAT(DISTINCT test_score

-> ORDER BY test_score DESC SEPARATOR ‘ ‘)

-> FROM student

-> GROUP BY student_name;

mysql> SELECT student_name,
    ->     GROUP_CONCAT(DISTINCT test_score
    ->               ORDER BY test_score DESC SEPARATOR ' ')
    ->     FROM student
    ->     GROUP BY student_name;
VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
Categories: Общее Tags: , , ,