« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Функция AccessResource

Разработка Java-приложений для работы с данными DB2 XML

Теория плагинов. Я сделал так...

Скриптовые закладки

Связывание OLE-объекта

Автоматическая обработка ошибок

Функция SetDIBitsToDevice

Файловые операции средствами ShellAPI

Функция lstrcpy

Глава 6. Препроцессор




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 168
Пользователей: 1
  • KRoman

  • Статьи:: C/С++ :: Информация по MyODBC



    отправить ссылку другу версия для печати  Обсудить на форуме

    Информация по MyODBC



    Алексей Паутов

    Типы данных в MyODBC

    Следующая таблица иллюстрирует, как драйвер отображает типы данных сервера к заданным по умолчанию SQL и C-типам данных:

    Тип на сервере SQL-тип C-тип
    tinyint SQL_TINYINT SQL_C_STINYINT
    tinyint unsigned SQL_TINYINT SQL_C_UTINYINT
    bigint SQL_BIGINT SQL_C_SBIGINT
    bigint unsigned SQL_BIGINT SQL_C_UBIGINT
    long varbinary SQL_LONGVARBINARY SQL_C_BINARY
    blob SQL_VARBINARY SQL_C_BINARY
    longblob SQL_VARBINARY SQL_C_BINARY
    tinyblob SQL_BINARY SQL_C_BINARY
    mediumblob SQL_LONGVARBINARY SQL_C_BINARY
    long varchar SQL_LONGVARCHAR SQL_C_CHAR
    text SQL_LONGVARCHAR SQL_C_CHAR
    mediumtext SQL_LONGVARCHAR SQL_C_CHAR
    char SQL_CHAR SQL_C_CHAR
    numeric SQL_NUMERIC SQL_C_CHAR
    decimal SQL_DECIMAL SQL_C_CHAR
    integer SQL_INTEGER SQL_C_SLONG
    integer unsigned SQL_INTEGER SQL_C_ULONG
    int SQL_INTEGER SQL_C_SLONG
    int unsigned SQL_INTEGER SQL_C_ULONG
    mediumint SQL_INTEGER SQL_C_SLONG
    mediumint unsigned SQL_INTEGER SQL_C_ULONG
    smallint SQL_SMALLINT SQL_C_SSHORT
    smallint unsigned SQL_SMALLINT SQL_C_USHORT
    real SQL_FLOAT SQL_C_DOUBLE
    double SQL_FLOAT SQL_C_DOUBLE
    float SQL_REAL SQL_C_FLOAT
    double prec SQL_DOUBLE SQL_C_DOUBLE
    date SQL_DATE SQL_C_DATE
    time SQL_TIME SQL_C_TIME
    year SQL_SMALLINT SQL_C_SHORT
    datetime SQL_TIMESTAMP SQL_C_TIMESTAMP
    timestamp SQL_TIMESTAMP SQL_C_TIMESTAMP
    text SQL_VARCHAR SQL_C_CHAR
    varchar SQL_VARCHAR SQL_C_CHAR
    enum SQL_VARCHAR SQL_C_CHAR
    set SQL_VARCHAR SQL_C_CHAR
    6.2 Коды ошибок MyODBC

    Следующая таблица вносит в список коды ошибок, возвращаемые драйвером кроме ошибок сервера.

    Код ошибки SQLSTATE 2< /STRONG> SQLSTATE 3 Сообщение
    500 01000 01000 Общее предупреждение.
    501 01004 01004 Данные для строки подрезаны справа.
    502 01S02 01S02 Измененное значение Option.
    503 01S03 01S03 Никакие строки не изменены.
    504 01S04 01S04 Больше, чем одна модифицируемая/удаляемая строка.
    505 01S06 01S06 Пытаетесь выбирать данные прежде, чем набор результатов возвратил первый набор строк.
    506 07001 07002 SQLBindParameter не используемый для всех параметров.
    507 07005 07005 Подготовленная инструкция не специфична для курсора.
    508 07009 07009 Недопустимый дескрипторный индекс.
    509 08002 08002 Имя подключения занято.
    510 08003 08003 Подключение не существует.
    511 24000 24000 Недопустимое состояние курсора.
    512 25000 25000 Недопустимое состояние транзакции.
    513 25S01 25S01 Неизвестное состояние транзакции.
    514 34000 34000 Недопустимое имя курсора.
    515 S1000 HY000 Общая ошибка драйвера.
    516 S1001 HY001 Ошибка распределения памяти.
    517 S1002 HY002 Недопустимый номер столбца.
    518 S1003 HY003 Недопустимый тип буфера прикладных программ.
    519 S1004 HY004 Недопустимый SQL-тип данных.
    520 S1009 HY009 Недопустимое использование null.
    521 S1010 HY010 Функциональная ошибка последовательности.
    522 S1011 HY011 Атрибут не может быть установлен в настоящий момент.
    523 S1012 HY012 Недопустимый код операции транзакции.
    524 S1013 HY013 Ошибка управления памятью.
    525 S1015 HY015 Никакое имя курсора недоступно.
    526 S1024 HY024 Недопустимое значение атрибута.
    527 S1090 HY090 Недопустимая длина строки или буфера.
    528 S1091 HY091 Недопустимый дескрипторный идентификатор поля.
    529 S1092 HY092 Недопустимый идентификатор атрибута или опции.
    530 S1093 HY093 Недопустимый номер параметра.
    531 S1095 HY095 Функциональный тип вне диапазона.
    532 S1106 HY106 Тип выборки вне диапазона.
    533 S1117 HY117 Значение строки вне диапазона.
    534 S1109 HY109 Недопустимая позиция курсора.
    535 S1C00 HYC00 Факультативное свойство не выполнено.
    0 21S01 21S01 Число столбцов не соответствует значению.
    0 23000 23000 Нарушение ограничения целостности.
    0 42000 42000 Ошибка синтаксиса или нарушение прав доступа в системе.
    0 42S02 42S02 Основная таблица или представление не найдено.
    0 42S12 42S12 Индекс не найден.
    0 42S21 42S21 Столбец уже существует.
    0 42S22 42S22 Столбец не найден.
    0 08S01 08S01 Сбой связи.
    6.3 MyODBC с VB: ADO, DAO и RDO

    Эта глава содержит простые примеры использования MySQL ODBC 3.51 с ADO, DAO и RDO.

    6.3.1 ADO: rs.addNew, rs.delete и rs.update

    Следующий пример для ADO (ActiveX Data Objects) создает таблицу my_ado и показывает использование rs.addNew, rs.delete и rs.update.

    Private Sub myodbc_ado_Click()
      Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim fld As ADODB.Field
      Dim sql As String
    
      'connect to MySQL server using MySQL ODBC 3.51 Driver
      Set conn = New ADODB.Connection
      conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_
                            & "SERVER=localhost;"_
                            & " DATABASE=test;"_
                            & "UID=venu;PWD=venu; OPTION=35"
      conn.Open
      'create table
      conn.Execute "DROP TABLE IF EXISTS my_ado"
      conn.Execute "CREATE TABLE my_ado(id int not null primary key,
                    name varchar(20)," _
                    & "txt text, dt date, tm time, ts timestamp)"
      'direct insert
      conn.Execute "INSERT INTO my_ado(id,name,txt) values(1,100,'venu')"
      conn.Execute "INSERT INTO my_ado(id,name,txt) values(2,200,'MySQL')"
      conn.Execute "INSERT INTO my_ado(id,name,txt) values(3,300,'Delete')"
      Set rs = New ADODB.Recordset
      rs.CursorLocation = adUseServer
      'fetch the initial table ..
      rs.Open "SELECT * FROM my_ado", conn
        Debug.Print rs.RecordCount
        rs.MoveFirst
        Debug.Print String(50, "-") & "Initial my_ado Result Set "
                           & String(50, "-")
        For Each fld In rs.Fields
          Debug.Print fld.Name,
          Next
          Debug.Print
          Do Until rs.EOF
          For Each fld In rs.Fields
          Debug.Print fld.Value,
          Next
          rs.MoveNext
          Debug.Print
        Loop
      rs.Close
      'rs insert
      rs.Open "select * from my_ado", conn, adOpenDynamic, adLockOptimistic
      rs.AddNew
      rs!Name = "Monty"
      rs!txt = "Insert row"
      rs.Update
      rs.Close
      'rs update
      rs.Open "SELECT * FROM my_ado"
      rs!Name = "update"
      rs!txt = "updated-row"
      rs.Update
      rs.Close
      'rs update second time..
      rs.Open "SELECT * FROM my_ado"
      rs!Name = "update"
      rs!txt = "updated-second-time"
      rs.Update
      rs.Close
      'rs delete
      rs.Open "SELECT * FROM my_ado"
      rs.MoveNext
      rs.MoveNext
      rs.Delete
      rs.Close
      'fetch the updated table ..
      rs.Open "SELECT * FROM my_ado", conn
        Debug.Print rs.RecordCount
        rs.MoveFirst
        Debug.Print String(50, "-") & "Updated my_ado Result Set "
                           & String(50, "-")
        For Each fld In rs.Fields
          Debug.Print fld.Name,
          Next
          Debug.Print
          Do Until rs.EOF
          For Each fld In rs.Fields
          Debug.Print fld.Value,
          Next
          rs.MoveNext
          Debug.Print
        Loop
      rs.Close
      conn.Close
    End Sub
    

     

    6.3.2 DAO: rs.addNew, rs.update и прокрутка

    Следующий пример для DAO (Data Access Objects) создает таблицу my_dao и показывает использование rs.addNew, rs.update, а также прокрутку (скроллинг) набора результатов.

    Private Sub myodbc_dao_Click()
      Dim ws As Workspace
      Dim conn As Connection
      Dim queryDef As queryDef
      Dim str As String
    
      'connect to MySQL using MySQL ODBC 3.51 Driver
      Set ws = DBEngine.CreateWorkspace("", "venu", "venu", dbUseODBC)
      str = "odbc;DRIVER={MySQL ODBC 3.51 Driver};"_
                          & "SERVER=localhost;"_
                          & " DATABASE=test;"_
                          & "UID=venu;PWD=venu; OPTION=35"
      Set conn = ws.OpenConnection("test", dbDriverNoPrompt, False, str)
      'Create table my_dao
      Set queryDef = conn.CreateQueryDef("", "drop table if exists my_dao")
      queryDef.Execute
      Set queryDef = conn.CreateQueryDef("", "create table my_dao(Id
                     INT AUTO_INCREMENT PRIMARY KEY, " _
                     & "Ts TIMESTAMP(14) NOT NULL,Name varchar(20),
                     Id2 INT)")
      queryDef.Execute
      'Insert new records using rs.addNew
      Set rs = conn.OpenRecordset("my_dao")
      Dim i As Integer
        For i = 10 To 15
        rs.AddNew
        rs!Name = "insert record" & i
        rs!Id2 = i
        rs.Update
        Next i
        rs.Close
      'rs update..
      Set rs = conn.OpenRecordset("my_dao")
      rs.Edit
      rs!Name = "updated-string"
      rs.Update
      rs.Close
      'fetch the table back...
      Set rs = conn.OpenRecordset("my_dao", dbOpenDynamic)
      str = "Results:"
      rs.MoveFirst
      While Not rs.EOF
      str = " " & rs!Id & " , " & rs!Name & ", "
            & rs!Ts & ", " & rs!Id2
      Debug.Print "DATA:" & str
      rs.MoveNext
      Wend
      'rs Scrolling
      rs.MoveFirst
      str = " FIRST ROW: " & rs!Id & " , " & rs!Name & ", "
            & rs!Ts & ", " & rs!Id2
      Debug.Print str
      rs.MoveLast
      str = " LAST ROW: " & rs!Id & " , " & rs!Name & ", "
            & rs!Ts & ", " & rs!Id2
      Debug.Print str
      rs.MovePrevious
      str = " LAST-1 ROW: " & rs!Id & " , " & rs!Name & ", "
            & rs!Ts & ", " & rs!Id2
      Debug.Print str
      'free all resources
      rs.Close
      queryDef.Close
      conn.Close
      ws.Close
    End Sub
    

     

    6.3.3 RDO: rs.addNew и rs.update

    Следующий пример для RDO (Remote Data Objects) создает таблицу my_rdo и показывает использование rs.addNew и rs.update.

    Dim rs As rdoResultset
      Dim cn As New rdoConnection
      Dim cl As rdoColumn
      Dim SQL As String
    
      'cn.Connect = "DSN=test;"
      cn.Connect = "DRIVER={MySQL ODBC 3.51 Driver};"_
                           & "SERVER=localhost;"_
                           & " DATABASE=test;"_
                           & "UID=venu;PWD=venu; OPTION=35"
      cn.CursorDriver = rdUseOdbc
      cn.EstablishConnection rdDriverPrompt
      'drop table my_rdo
      SQL = "drop table if exists my_rdo"
      cn.Execute SQL, rdExecDirect
      'create table my_rdo
      SQL = "create table my_rdo(id int, name varchar(20))"
      cn.Execute SQL, rdExecDirect
      'insert - direct
      SQL = "insert into my_rdo values (100,'venu')"
      cn.Execute SQL, rdExecDirect
      SQL = "insert into my_rdo values (200,'MySQL')"
      cn.Execute SQL, rdExecDirect
      'rs insert
      SQL = "select * from my_rdo"
      Set rs = cn.OpenResultset(SQL, rdOpenStatic, rdConcurRowVer, rdExecDirect)
      rs.AddNew
      rs!id = 300
      rs!Name = "Insert1"
      rs.Update
      rs.Close
      'rs insert
      SQL = "select * from my_rdo"
      Set rs = cn.OpenResultset(SQL, rdOpenStatic, rdConcurRowVer, rdExecDirect)
      rs.AddNew
      rs!id = 400
      rs!Name = "Insert 2"
      rs.Update
      rs.Close
      'rs update
      SQL = "select * from my_rdo"
      Set rs = cn.OpenResultset(SQL, rdOpenStatic, rdConcurRowVer, rdExecDirect)
      rs.Edit
      rs!id = 999
      rs!Name = "updated"
      rs.Update
      rs.Close
      'fetch back...
      SQL = "select * from my_rdo"
      Set rs = cn.OpenResultset(SQL, rdOpenStatic, rdConcurRowVer, rdExecDirect)
      Do Until rs.EOF
      For Each cl In rs.rdoColumns
          Debug.Print cl.Value,
        Next
        rs.MoveNext
        Debug.Print
        Loop
      Debug.Print "Row count="; rs.RowCount
      'close
      rs.Close
      cn.Close
    End Sub
    

     

    6.4 MyODBC и Microsoft .NET

    Эта глава содержит простые примеры, чтобы показать использование драйверов MyODBC с ODBC.NET.

    6.4.1 ODBC.NET: CSHARP(C#)

    Следующий пример создает таблицу my_odbc_net и показывает использование в C#.

    /**
     * @sample  : mycon.cs
     * @purpose : Demo sample for ODBC.NET using MyODBC or MyODBC 3.51
     * @author  : Venu, venu@mysql.com
     *
     * (C) Copyright MySQL AB, 1995-2002
     *
    **/
    
    /* build command
      *
      *  csc /t:exe
      *      /out:mycon.exe mycon.cs
      *      /r:Microsoft.Data.Odbc.dll
     */
    using Console = System.Console;
    using Microsoft.Data.Odbc;
    
    namespace myodbc3
    {
      class mycon
      {
        static void Main(string[] args)
        {
          try
          {
            //Connection string for MyODBC 2.50
            /*string MyConString = "DRIVER={MySQL};" + "SERVER=localhost;" +
                                   "DATABASE=test;" + "UID=venu;" +
                                   "PASSWORD=venu;" + "OPTION=3";
            */
            //Connection string for MyODBC 3.51
            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                                 "SERVER=localhost;" + "DATABASE=test;" +
                                 "UID=venu;" + "PASSWORD=venu;" + "OPTION=3";
            //Connect to MySQL using MyODBC
            OdbcConnection MyConnection = new OdbcConnection(MyConString);
            MyConnection.Open();
            Console.WriteLine("n !!! success, connected successfully !!!n");
            //Display connection information
            Console.WriteLine("Connection Information:");
            Console.WriteLine("tConnection String:" +
                              MyConnection.ConnectionString);
            Console.WriteLine("tConnection Timeout:" +
                              MyConnection.ConnectionTimeout);
            Console.WriteLine("tDatabase:" + MyConnection.Database);
            Console.WriteLine("tDataSource:" + MyConnection.DataSource);
            Console.WriteLine("tDriver:" + MyConnection.Driver);
            Console.WriteLine("tServerVersion:" + MyConnection.ServerVersion);
            //Create a sample table
            OdbcCommand MyCommand = new OdbcCommand("DROP TABLE IF EXISTS
                                                    my_odbc_net",MyConnection);
            MyCommand.ExecuteNonQuery();
            MyCommand.CommandText = "CREATE TABLE my_odbc_net(id int, name
                                    varchar(20), idb bigint)";
            MyCommand.ExecuteNonQuery();
            //Insert
            MyCommand.CommandText = "INSERT INTO my_odbc_net VALUES(10,'venu',
                                    300)";
            Console.WriteLine("INSERT, Total rows affected:" +
                              MyCommand.ExecuteNonQuery());;
            //Insert
            MyCommand.CommandText = "INSERT INTO my_odbc_net
                                    VALUES(20,'mysql',400)";
            Console.WriteLine("INSERT, Total rows affected:" +
                              MyCommand.ExecuteNonQuery());
            //Insert
            MyCommand.CommandText = "INSERT INTO my_odbc_net
                                    VALUES(20,'mysql',500)";
            Console.WriteLine("INSERT, Total rows affected:" +
                              MyCommand.ExecuteNonQuery());
            //Update
            MyCommand.CommandText = "UPDATE my_odbc_net SET id=999 WHERE id=20";
            Console.WriteLine("Update, Total rows affected:" +
                              MyCommand.ExecuteNonQuery());
            //COUNT(*)
            MyCommand.CommandText = "SELECT COUNT(*) as TRows FROM my_odbc_net";
            Console.WriteLine("Total Rows:" + MyCommand.ExecuteScalar());
            //Fetch
            MyCommand.CommandText = "SELECT * FROM my_odbc_net";
            OdbcDataReader MyDataReader;
            MyDataReader =  MyCommand.ExecuteReader();
            while (MyDataReader.Read())
            {
              if (string.Compare(MyConnection.Driver,"myodbc3.dll") == 0) {
                 Console.WriteLine("Data:" + MyDataReader.GetInt32(0) + " " +
                                   MyDataReader.GetString(1) + " " +
                                   MyDataReader.GetInt64(2));
              }
              else
              {
                Console.WriteLine("Data:" + MyDataReader.GetInt32(0) + " " +
                                  MyDataReader.GetString(1) + " " +
                                  MyDataReader.GetInt32(2));
                                  // BIGINTs not supported by MyODBC
              }
            }
            // Close all resources
            MyDataReader.Close();
            MyConnection.Close();
          }
          catch (OdbcException MyOdbcException)  // Catch any ODBC exception ..
          {
            for (int i=0; i < MyOdbcException.Errors.Count; i++)
            {
              Console.Write("ERROR #" + i + "n" +
                "Message: " + MyOdbcException.Errors[i].Message + "n" +
                "Native: " + MyOdbcException.Errors[i].NativeError.ToString() +
                "n" + "Source: " + MyOdbcException.Errors[i].Source + "n" +
                "SQL: " + MyOdbcException.Errors[i].SQLState + "n");
            }
          }
        }
      }
    }
    

     

    6.4.2 ODBC.NET: VB

    Следующий пример создает таблицу my_vb_net и показывает использование в VB.

    ' @sample  : myvb.vb
    ' @purpose : Demo sample for ODBC.NET using MyODBC or MyODBC 3.51
    ' @author  : Venu, venu@mysql.com
    '
    ' (C) Copyright MySQL AB, 1995-2002
    '
    ' build command
    '
    ' vbc /target:exe
    '     /out:myvb.exe
    '     /r:Microsoft.Data.Odbc.dll
    '     /r:System.dll
    '     /r:System.Data.dll
    Imports Microsoft.Data.Odbc
    Imports System
    
    Module myvb
      Sub Main()
        Try
          'MyODBC 3.51 connection string
          Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
              "SERVER=localhost;" & _
              "DATABASE=test;" & _
              "UID=venu;" & _
              "PASSWORD=venu;" & _
              "OPTION=3;"
          'Connection
          Dim MyConnection As New OdbcConnection(MyConString)
          MyConnection.Open()
          Console.WriteLine("Connection State::" &
                            MyConnection.State.ToString)
          'Drop
          Console.WriteLine ("Dropping table")
          Dim MyCommand As New OdbcCommand()
          MyCommand.Connection = MyConnection
          MyCommand.CommandText = "DROP TABLE IF EXISTS my_vb_net"
          MyCommand.ExecuteNonQuery()
          'Create
          Console.WriteLine ("Creating....")
          MyCommand.CommandText = "CREATE TABLE my_vb_net(id int,
                                  name varchar(30))"
          MyCommand.ExecuteNonQuery()
          'Insert
          MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(10,'venu')"
          Console.WriteLine("INSERT, Total rows affected:" &
                            MyCommand.ExecuteNonQuery())
          'Insert
          MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(20,'mysql')"
          Console.WriteLine("INSERT, Total rows affected:" &
                            MyCommand.ExecuteNonQuery())
          'Insert
          MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(20,'mysql')"
          Console.WriteLine("INSERT, Total rows affected:" &
                            MyCommand.ExecuteNonQuery())
          'Insert
          MyCommand.CommandText = "INSERT INTO my_vb_net(id) VALUES(30)"
          Console.WriteLine("INSERT, Total rows affected:" &
                            MyCommand.ExecuteNonQuery())
          'Update
          MyCommand.CommandText = "UPDATE my_vb_net SET id=999 WHERE id=20"
          Console.WriteLine("Update, Total rows affected:" &
                            MyCommand.ExecuteNonQuery())
          'COUNT(*)
          MyCommand.CommandText = "SELECT COUNT(*) as TRows FROM my_vb_net"
          Console.WriteLine("Total Rows:" & MyCommand.ExecuteScalar())
          'Select
          Console.WriteLine ("Select * FROM my_vb_net")
          MyCommand.CommandText = "SELECT * FROM my_vb_net"
          Dim MyDataReader As OdbcDataReader
          MyDataReader = MyCommand.ExecuteReader
          While MyDataReader.Read
            If MyDataReader("name") Is DBNull.Value Then
               Console.WriteLine("id = " & CStr(MyDataReader("id")) &
                                 "  name = " & "NULL")
            Else Console.WriteLine("id = " & CStr(MyDataReader("id")) &
                                   "  name = " & CStr(MyDataReader("name")))
            End If
          End While
          'Catch ODBC Exception
          Catch MyOdbcException As OdbcException
            Dim i As Integer
            Console.WriteLine (MyOdbcException.ToString)
          'Catch program exception
          Catch MyException As Exception
            Console.WriteLine (MyException.ToString)
        End Try
      End Sub
    End Module
    

     

    6.5 Авторы

    Это разработчики, которые работают в MySQL AB полный рабочий день над драйверами MyODBC и MyODBC 3.51.

     




    Рубрика: C/С++




    Подгрузка через AJAX HTML-кода, содержащег....

    AJAX

    При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


    Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

    Обзор нового релиза самой мощной Ajax библ....

    AJAX

    Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


    Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

    Firebug 1.3 и 1.4 alpha — что нового и инт....

    Вебмастеру

    Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


    Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

    Остальные статьи:

    Релиз Microsoft Silverlight 2.0. Что новог...
    XML документация в C#
    Курсоры в MySQL 5
    Microsoft опубликовала подробности о сесси...
    Microsoft делится подробностями о том, что...
    Тестируем новый javascript от нового брауз...
    MySQL Query Cache
    Использование провайдеров компиляции в As...
    Чего мы ждем от C# 4.0
    Delphi 2009 и C++Builder 2009
    Джоэл Спольски и Джеф Этвуд запустили новы...
    Поиск кода Google /* что нового? */
    10 jQuery скриптов для улучшения интерфейс...
    Генераторы отчетов FastReport 4 и QuickRep...
    День программиста — набор стерeотипов
    Индусские програмисты
    Вышел Django 1.0
    Портативная версия Google Chrome Portable
    Исходные коды .Net Frameword 3.5 SP1 для о...
    Пишем правильный online WYSIWYG-редактор


    Цитата дня (все,добавить):

    Портал фрилансеров

    работа на дому


        Рубрикатор

    Программирование

    C/С++
    Обучение
    Windows API
    XAML
    Моделирование
    Паттерны
    Visual Basic 7 .NET
    WxWidgets
    Функции WinApi
    Функции С++
    Разработка под Mac OS
    Eiffel
    Visual Studio 2008
    UI дизайн
    Алгоритмы
    Конкурсные статьи
    Turbo Pascal
    Visual Studio
    CASE-средства
    Visual Studio 2005
    Без VCL
    Delphi
    Тех. документация
    Тестирование
    Software Testing
    ООП
    TCP/IP
    Google Android
    Windows Installer
    .NET Framework
    Драйвера
    C# C Sharp
    Справка
    Проектирование
    Информ. системы
    Visual Basic
    Assembler
    Оптимизация кода
    Gtk+
    Компоненты
    Реинжиниринг
    Управление проектами
    Extreeme programming
    Lotus Notes
    Алгебраическое проектирование


    Интернет технологии

    PHP
    Perl
    ASP
    WAP
    Cookies
    SSI
    CGI
    Web Servers
    VB Script
    DNS
    CSS
    XML
    Html
    Java Script
    Java2ME
    Firewall
    Flash
    .htaccess
    Apache
    VRML
    Протоколы
    Поисковые системы
    Технология JAVA
    Учебник по PHP
    Учебник по JavaScript
    Учебник по XML
    Java Q&A
    AJAX
    DHTML
    XHTML
    Dreamweaver
    Web 2.0
    Python
    Вебмастеру
    Cisco
    Ruby on Rails
    Silverlight

    Базы данных

    Access
    InterBase
    MySQL
    Oracle
    ADO .NET
    Основы SQL
    Учебник по Access 2002
    MS
    Microsoft FoxPro
    Доступ к данным
    XML в MS SQL Server 2000
    ODBC и MyODBC
    Обучение
    Caché
    DB2
    PostgresSQL
    Sybase
    Теория
    Хранилища данных
    Безопасность
    Реляционные данные
    MySQL и mSQL

    Остальное:

    Разное
    Обзоры книг
    Безопасность
    Графика и дизайн
    Юмор
    Linux
    Фракталы
    Microsoft Axapta
    Многоядерность
    Сети
    Microsoft Office
    Работа
    MS-DOS
    Криптография
    Графика и игроделание
    Новости SDK
    Системы защиты
    Учебник по AutoCad
    CVS
    Windows XP
    Windows Server 2003
    Windows Vista
    Windows 7
    Мероприятия