VG2 Опубликовано 7 мая, 2008 Жалоба Share Опубликовано 7 мая, 2008 Есть две таблицы в базе данных bsff.dsn — table1 и table2. первая таблица отвечает за "дома", вторая за "жителей". Каждый дом может иметь несколько жителей. Сделал окно по вызову всех домов, из редактирования, добавления новых и удаления. Теперь нужно при выборе определенного дома вызывать новое окно с жителями ЭТОГО дома. Там тоже можно менять, добавлять, удалять жителей. Для этого существует переменная — pr_load, которая сохраняет в себе название дома. И при открытии окна с жителями и добавлении нового жителя должна заноситься в БД, но выдает какие-то проблемы с синтаксисом в назначении параметра WHERE. Подскажите плиз, где у меня может быть ошибка? var db = new Database("FILEDSN=bsff.dsn"); pr = new Array(); var records = db.ExecuteSQL("SELECT zitel, id FROM table2 ORDER BY id DESC WHERE dom = pr_load"); var num_records = records.GetNumberOfRecords(); for (num=0; num<=num_records; num++) { pr[num] = records.zitel; records.NextRecord(); } Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 8 мая, 2008 Жалоба Share Опубликовано 8 мая, 2008 А как он поймет что pr_load в строке #3 переменная? Может надо указать что требуется не "where dom = pr_load" , а "where dom = <<значние>>pr_load" Ссылка на комментарий Поделиться на другие сайты More sharing options...
Ksanatos Опубликовано 8 мая, 2008 Жалоба Share Опубликовано 8 мая, 2008 да, тут явно в SQL-запросе требуется указать, что pr_load является переменной (например в PHP это выглядило бы '$pr_load'). К сожалению, не знаю, как это делается в Jscript, поскольку вообще впервые, если честно, вижу, что из JS можно напрямую работать с БД. А что за движок БД, если не секрет? Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 8 мая, 2008 Жалоба Share Опубликовано 8 мая, 2008 В любом случае директива ORDER BY обычно помещается в конец SQL выражения. SELECT zitel, id FROM table2 WHERE dom = pr_load ORDER BY id DESC Возможно для JS понадобится сделать что-то вроде var records = db.ExecuteSQL("SELECT zitel, id FROM table2 WHERE dom = " + pr_load + " ORDER BY id DESC"); Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 8 мая, 2008 Жалоба Share Опубликовано 8 мая, 2008 VG2 не советую вообще JS юзать для таких вещей в плане отладки - полное Г. Ссылка на комментарий Поделиться на другие сайты More sharing options...
Grigory Опубликовано 8 мая, 2008 Жалоба Share Опубликовано 8 мая, 2008 Marik правильно подсказал. А что за изврат, кстати, работать с БД посредством JS? :-) Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 9 мая, 2008 Автор Жалоба Share Опубликовано 9 мая, 2008 Спасибо. Я не программист совсем, просто хобби у меня такое на почве любви к математике pr_load указывается как переменная ранее. Marik это правильно, но ошибка была в другом и я даже до сих пор не понял в чем было дело. Пересоздал файл bsff.dsn и все заработало. Мучился с этой проблемой часов пять, как дошло наконец - прям счастье наступило Насчет JS+BD, а почему изврат? Главное - работает Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 9 мая, 2008 Жалоба Share Опубликовано 9 мая, 2008 C отладкой намучаешся Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.