Again same problem with quotes, but cant find a proper sol
I've gone thru so many posts, but cud'nt really find a solution. someone please help me here. I have a single insert function, which does all inserts for many tables, so cant use ppdstmt.setString(1, "value").
I am trying to insert some data into SQL server database(thru jdbc). The normal data works just fine, but if the user inserts some data which have quotation marks, then its throwing an error that is invalid character.
ex: received ->enters correctly into db
but
rec'd -> unable to
Insert into table(name) values('Oreilly'); //works fine
Insert into table(name) values('O'reilly'); //throws an error, sql exception
because the sql server is unable to find the matching quote. I would like to replace it with a ` or double quotes, but I am unable to replace it. I am not using a string to insert a value, I am using an Object. so I am unable to use any preparedStatement also(like ppdstmt.setString(1,"value"). Also I cant use replaceAll function, because, I am using jdk1.3. Is there any other way, I can replace ' with '' or `. The following is my code for inserting data.
private void insert(String pQualifierName, String pTableName, Map pValueMap)
m1Buffer.append("INSERT INTO ").append(QualifyTableName(pQualifierName, pTableName)).append(" (");
m2Buffer.append(" VALUES (");
// go over all values
boolean isNotFirst = false;
for (Iterator i = pValueMap.keySet().iterator(); i.hasNext();)
if (isNotFirst)
m1Buffer.append(", ");
m2Buffer.append(", ");
isNotFirst = true;
String aColumnName = (String) i.next();
// add the column name to the first part
m1Buffer.append(aColumnName);
// add a "?" to the second part, as well as adding the value to the parameter list
if(pValueMap.get(aColumnName)!= null) {
//aColumnName=aColumnName.replace( '\'', '`');
m2Buffer.append("'");
m2Buffer.append(pValueMap.get(aColumnName));
m2Buffer.append("'");
} else {
m2Buffer.append(pValueMap.get(aColumnName)); //appends the value we entered
m1Buffer.append(")");
m2Buffer.append(")");
protected void insert()
verifyUnbacked();
try
StatementBuilder aBuilder = StatementBuilder.insertStatement(accessQualifierName(), accessTableName(), mUnbackedMap);
Connection aConnection = ConnectionPool.getConnection();
try
PreparedStatement aPreparedStatement = aBuilder.generatePreparedStatement(aConnection);
try
aPreparedStatement.executeUpdate();
Thanks
Barun_guha,
Thanks for your code, but the problem is pValueMap.get(aColumnName) is an Object and it cannot be initialized as a String .
scsi-boy,
I am attaching the 2 files related, StatementBuilder.java and AbstractEntity.java.
Basically, the statementBuilder.java builds the SQL stmt and AbstractEntity.java does the update, delete and inserts(it has the PreparedStament). So could someone suggest me a solution based on this code.
Thanks
import firstpro.util.AbstractType;
import java.sql.*;
import java.util.*;
public class StatementBuilder
private static final StatementType SELECT = new StatementType("SELECT");
private static final StatementType INSERT = new StatementType("INSERT");
private static final StatementType IDENTITY = new StatementType("IDENTITY");
private static final StatementType UPDATE = new StatementType("UPDATE");
private static final StatementType DELETE = new StatementType("DELETE");
* is true when the prepared statment can be set as "read-only" (i.e., a select of some kind).
private boolean mIsReadOnly = false;
* denotes what operation this statement represents.
private StatementType mStatementType;
* accumulates all the table names used in the statement.
private List mTableList = new ArrayList();
* holds the sequence of tables followed in join expressions.
private LinkedList mTableStack = new LinkedList();
* accumulates the table column names referenced in the statement.
private Set mReferenceSet = new HashSet();
* holds the column names used in the select result.
private List mResultColumnList = new ArrayList();
* is the first part of the generated SQL statement.
private StringBuffer m1Buffer = new StringBuffer();
* is the second part of the generated SQL statement.
private StringBuffer m2Buffer = new StringBuffer();
* holds the list of actual parameter values to substitute for the "?" symbols in the generated SQL.
private List mParameterList = new ArrayList();
* constructs an instance with the given type.
* @param pStatementType
private StatementBuilder(StatementType pStatementType)
mStatementType = pStatementType;
* creates a "select" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
* @param pResult
* @return
static StatementBuilder selectStatement(String pQualifierName, String pTableName, AbstractEntityCondition pCondition, AbstractEntityResult pResult)
StatementBuilder aBuilder = new StatementBuilder(SELECT);
aBuilder.select(pQualifierName, pTableName, pCondition, pResult);
return aBuilder;
* creates a "select distinct" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
* @param pResult
* @return
static StatementBuilder distinctStatement(String pQualifierName, String pTableName, AbstractEntityCondition pCondition, AbstractEntityResult pResult)
StatementBuilder aBuilder = new StatementBuilder(SELECT);
aBuilder.distinct(pQualifierName, pTableName, pCondition, pResult);
return aBuilder;
* creates a "select count(*)" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
* @return
static StatementBuilder countStatement(String pQualifierName, String pTableName, AbstractEntityCondition pCondition)
StatementBuilder aBuilder = new StatementBuilder(SELECT);
aBuilder.count(pQualifierName, pTableName, pCondition);
return aBuilder;
* creates in "insert" statement.
* @param pQualifierName
* @param pTableName
* @param pValueMap
* @return
static StatementBuilder insertStatement(String pQualifierName, String pTableName, Map pValueMap)
StatementBuilder aBuilder = new StatementBuilder(INSERT);
aBuilder.insert(pQualifierName, pTableName, pValueMap);
return aBuilder;
* creates an "identity" statement (for retrieving the generated primary key from the DB after an insert).
* @param pTypeName
* @return
static StatementBuilder identityStatement(String pTypeName)
StatementBuilder aBuilder = new StatementBuilder(IDENTITY);
aBuilder.identity(pTypeName);
return aBuilder;
* creates an "update" statement.
* @param pQualifierName
* @param pTableName
* @param pValueMap
* @param pCondition
* @return
static StatementBuilder updateStatement(String pQualifierName, String pTableName, Map pValueMap, AbstractEntityCondition pCondition)
StatementBuilder aBuilder = new StatementBuilder(UPDATE);
aBuilder.update(pQualifierName, pTableName, pValueMap, pCondition);
return aBuilder;
* creates a "delete" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
* @return
static StatementBuilder deleteStatement(String pQualifierName, String pTableName, AbstractEntityCondition pCondition)
StatementBuilder aBuilder = new StatementBuilder(DELETE);
aBuilder.delete(pQualifierName, pTableName, pCondition);
return aBuilder;
* emits a predicate of "true".
void trueAlways()
appendTrue();
* emits a predicate of "false".
void falseAlways()
appendFalse();
* emits a "join" predicate.
* @param pColumnName
* @param pQualifierName
* @param pJoinedTableName
* @param pJoinedColumnName
* @param pCondition
void join(String pColumnName, String pQualifierName, String pJoinedTableName, String pJoinedColumnName, AbstractEntityCondition pCondition)
if (!SELECT.equals(mStatementType))
throw new RuntimeException("Join only allowed in SELECT");
appendOpening();
appendColumn(pColumnName);
appendEqualTo();
pushTable(pQualifierName, pJoinedTableName);
appendColumn(pJoinedColumnName);
appendClosing();
appendAnd();
appendOpening();
appendCondition(pCondition);
appendClosing();
popTable();
* emits an "and" predicate.
* @param pCondition1
* @param pCondition2
void and(AbstractEntityCondition pCondition1, AbstractEntityCondition pCondition2)
appendOpening();
appendCondition(pCondition1);
appendClosing();
appendAnd();
appendOpening();
appendCondition(pCondition2);
appendClosing();
* emits an "and" predicate.
* @param pConditionArray
void and(AbstractEntityCondition[] pConditionArray)
if (0 == pConditionArray.length)
appendTrue();
else
for (int i = 0; i < pConditionArray.length; i++)
if (i != 0)
appendAnd();
appendOpening();
appendCondition(pConditionArray);
appendClosing();
* emits an "or" predicate.
* @param pCondition1
* @param pCondition2
void or(AbstractEntityCondition pCondition1, AbstractEntityCondition pCondition2)
appendOpening();
appendCondition(pCondition1);
appendClosing();
appendOr();
appendOpening();
appendCondition(pCondition2);
appendClosing();
* emits an "or" predicate.
* @param pConditionArray
void or(AbstractEntityCondition[] pConditionArray)
if (0 == pConditionArray.length)
appendFalse();
else
for (int i = 0; i < pConditionArray.length; i++)
if (i != 0)
appendOr();
appendOpening();
appendCondition(pConditionArray[i]);
appendClosing();
* emits a "not" predicate.
* @param pCondition
void not(AbstractEntityCondition pCondition)
appendNot();
appendOpening();
appendCondition(pCondition);
appendClosing();
* emits an "is null" predicate.
* @param pColumnName
void isNull(String pColumnName)
appendColumn(pColumnName);
appendIsNull();
* emits an "is not null" predicate.
* @param pColumnName
void isNotNull(String pColumnName)
appendColumn(pColumnName);
appendIsNotNull();
* emits a "between" predicate.
* @param pColumnName
* @param pValue1
* @param pValue2
void isBetween(String pColumnName, Object pValue1, Object pValue2)
appendColumn(pColumnName);
appendBetween();
appendValue(pValue1);
appendAnd();
appendValue(pValue2);
* emits a case-insensitive "between" predicate.
* @param pColumnName
* @param pValue1
* @param pValue2
void isBetweenIgnoringCase(String pColumnName, Object pValue1, Object pValue2)
appendColumnUpper(pColumnName);
appendBetween();
appendValueUpper(pValue1);
appendAnd();
appendValueUpper(pValue2);
* emits a "like" predicate.
* @param pColumnName
* @param pValue
void isLike(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendLike();
appendValue(pValue);
* emits a case-insensitive "like" predicate.
* @param pColumnName
* @param pValue
void isLikeIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendLike();
appendValueUpper(pValue);
* emits an "equals" predicate.
* @param pColumnName
* @param pValue
void isEqualTo(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendEqualTo();
appendValue(pValue);
* emits a case-insensitive "equals" predicate.
* @param pColumnName
* @param pValue
void isEqualToIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendEqualTo();
appendValueUpper(pValue);
* emits an "unequals" predicate.
* @param pColumnName
* @param pValue
void isNotEqualTo(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendNotEqualTo();
appendValue(pValue);
* emits a case-insensitive "unequals" predicate.
* @param pColumnName
* @param pValue
void isNotEqualToIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendNotEqualTo();
appendValueUpper(pValue);
* emits a "less than" predicate.
* @param pColumnName
* @param pValue
void isLessThan(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendLessThan();
appendValue(pValue);
* emits a case-insensitive "less than" predicate.
* @param pColumnName
* @param pValue
void isLessThanIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendLessThan();
appendValueUpper(pValue);
* emits a "less than or equals" predicate.
* @param pColumnName
* @param pValue
void isLessThanOrEqualTo(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendLessThanOrEqualTo();
appendValue(pValue);
* emits a case-insensitive "less than or equals" predicate.
* @param pColumnName
* @param pValue
void isLessThanOrEqualToIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendLessThanOrEqualTo();
appendValueUpper(pValue);
* emits a "greater than" predicate.
* @param pColumnName
* @param pValue
void isGreaterThan(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendGreaterThan();
appendValue(pValue);
* emits a case-insensitive "greater than" predicate.
* @param pColumnName
* @param pValue
void isGreaterThanIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendGreaterThan();
appendValueUpper(pValue);
* emits a "greater than or equals" predicate.
* @param pColumnName
* @param pValue
void isGreaterThanOrEqualTo(String pColumnName, Object pValue)
appendColumn(pColumnName);
appendGreaterThanOrEqualTo();
appendValue(pValue);
* emits a case-insensitive "greater than or equals" predicate.
* @param pColumnName
* @param pValue
void isGreaterThanOrEqualToIgnoringCase(String pColumnName, Object pValue)
appendColumnUpper(pColumnName);
appendGreaterThanOrEqualTo();
appendValueUpper(pValue);
* builds a "select" statment.
* @param pQualifierName
* @param pTableName
* @param pCondition
* @param pResult
private void select(String pQualifierName, String pTableName, AbstractEntityCondition pCondition, AbstractEntityResult pResult)
// this statment only reads from the DB
mIsReadOnly = true;
// initialize the table stack using the selected table
// the first push will write " FROM ..."
pushTable(pQualifierName, pTableName);
// build SELECT
StringBuffer sb = new StringBuffer();
// go over all columns
for (int i = 0; i < pResult.mColumnNameList.size(); i++)
// first one has command, others separate with commas
sb.append(i == 0 ? "SELECT DISTINCT TOP 100 " : ", ");
// get column name reference
String aQualifiedColumnName = QualifyColumnName((String) pResult.mColumnNameList.get(i));
// append to the statment
sb.append(aQualifiedColumnName);
// add to the result list
mResultColumnList.add(aQualifiedColumnName);
sb.append(" ");
// insert the "SELECT ..." before the " FROM ..." that was written on the push above
m1Buffer.insert(0, sb);
// do WHERE
if (pCondition != null)
m2Buffer.append(" WHERE ");
// will add to both "FROM..." in first buffer and to "WHERE ..." in second buffer
// this call does most of the hard work, and handles joins to other tables, etc.
appendCondition(pCondition);
// do ORDER BY
for (int i = 0; i < pResult.mOrderByList.size(); i++)
m2Buffer.append(i == 0 ? " ORDER BY " : ", ");
// column name
String aQualifiedColumnName = QualifyColumnName((String) pResult.mOrderByList.get(i));
// direction (ASC or DESC)
m2Buffer.append(aQualifiedColumnName).append(" ").append(pResult.mOrderByDirectionList.get(i));
popTable();
* is currently identical to "select"
* @param pQualifierName
* @param pTableName
* @param pCondition
* @param pResult
private void distinct(String pQualifierName, String pTableName, AbstractEntityCondition pCondition, AbstractEntityResult pResult)
select(pQualifierName, pTableName, pCondition, pResult);
* builds a "count(*)" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
private void count(String pQualifierName, String pTableName, AbstractEntityCondition pCondition)
// this statment only reads from the DB
mIsReadOnly = true;
// initialize the table stack using the selected table
// the first push will write " FROM ..."
pushTable(pQualifierName, pTableName);
// build and insert "SELECT ..." before the " FROM ..." that was written on the push above
m1Buffer.insert(0, "SELECT COUNT(*) ");
// do WHERE
if (pCondition != null)
m2Buffer.append(" WHERE ");
// will add to both "FROM..." in first buffer and to "WHERE ..." in second buffer
// this call does most of the hard work, and handles joins to other tables, etc.
appendCondition(pCondition);
// finished with this table
popTable();
private void insert(String pQualifierName, String pTableName, Map pValueMap)
// m1Buffer.append("set identity_insert " + pTableName + " off "+ " ").append("INSERT INTO ").append(QualifyTableName(pQualifierName, pTableName)).append(" (");
m1Buffer.append("INSERT INTO ").append(QualifyTableName(pQualifierName, pTableName)).append(" (");
m2Buffer.append(" VALUES (");
// go over all values
boolean isNotFirst = false;
for (Iterator i = pValueMap.keySet().iterator(); i.hasNext();)
if (isNotFirst)
m1Buffer.append(", ");
m2Buffer.append(", ");
isNotFirst = true;
String aColumnName = (String) i.next();
// add the column name to the first part
m1Buffer.append(aColumnName);
// add a "?" to the second part, as well as adding the value to the parameter list
if(pValueMap.get(aColumnName)!= null) {
//Object column= pValueMap.get(aColumnName);
aColumnName=aColumnName.replace( '\'', '`');
m2Buffer.append("'");
m2Buffer.append(pValueMap.get(aColumnName));
m2Buffer.append("'");
} else {
m2Buffer.append(pValueMap.get(aColumnName));
m1Buffer.append(")");
m2Buffer.append(")");
* builds a key-retrieval statement.
//* @param pTypeName
protected void identity(String pTypeName)
m2Buffer.append("SELECT CAST( @@IDENTITY AS "+ pTypeName + ")" );
private void update(String pQualifierName, String pTableName, Map pValueMap, AbstractEntityCondition pCondition)
m1Buffer.append("UPDATE ").append(QualifyTableName(pQualifierName, pTableName)).append(" SET ");
// go over all values
boolean isNotFirst = false;
for (Iterator i = pValueMap.keySet().iterator(); i.hasNext();)
if (isNotFirst)
m1Buffer.append(", ");
isNotFirst = true;
String aColumnName = (String) i.next();
// add the column name to the first part
m1Buffer.append(aColumnName);
m1Buffer.append(" = ");
// add a "?" to the second part, as well as adding the value to the parameter list
if((pValueMap.get(aColumnName)) == null) {
m1Buffer.append(pValueMap.get(aColumnName));
// System.out.println("NUll values are= " + pValueMap.get(aColumnName));
} else{
m1Buffer.append("'");
m1Buffer.append(pValueMap.get(aColumnName));
m1Buffer.append("'");
//System.out.println("Not Null values ARE*********" + pValueMap.get(aColumnName));
// do WHERE
if (pCondition != null)
m2Buffer.append(" WHERE ");
// this will normally be a key condition (one row updated at a time)
appendCondition(pCondition); // will add to "WHERE ..." clause
* builds a "delete" statement.
* @param pQualifierName
* @param pTableName
* @param pCondition
private void delete(String pQualifierName, String pTableName, AbstractEntityCondition pCondition)
m1Buffer.append("DELETE FROM ").append(QualifyTableName(pQualifierName, pTableName));
// do WHERE
if (pCondition != null)
m2Buffer.append(" WHERE ");
// this will normally be a key condition (one row deleted at a time)
appendCondition(pCondition); // will add to "WHERE ..." clause
* will get and save a unique (to this statment) correlation name of the given table
* to be used in the WHERE clause. This is in case the same table joined to
* more than once in the same query.
* @param pTableName
* @return
private String getCorrelationName(String pTableName)
String aCorrelationName = pTableName;
while (mReferenceSet.contains(aCorrelationName))
aCorrelationName = aCorrelationName + "_OTHER";
mReferenceSet.add(aCorrelationName);
return aCorrelationName;
* will prepend the qualifier (if any) to the table name.
* @param pQualifierName
* @param pTableName
* @return
private static String QualifyTableName(String pQualifierName, String pTableName)
return (pQualifierName == null ? "" : pQualifierName + ".") + pTableName;
* will make the given table the current table for parts of the expression below the current node.
* This is used anytime a join is needed.
* @param pQualifierName
* @param pTableName
private void pushTable(String pQualifierName, String pTableName)
String aCorrelationName = getCorrelationName(pTableName);
String aTableDeclaration = QualifyTableName(pQualifierName, pTableName) + " " + aCorrelationName;
m1Buffer.append(m1Buffer.length() == 0 ? " FROM " : ", ");
m1Buffer.append(aTableDeclaration);
mTableList.add(aTableDeclaration);
mTableStack.addFirst(aCorrelationName); // push
* will revert to the previous current table. This is used after a join is finished building.
private void popTable()
mTableStack.removeFirst(); // pop
* gets the table at the top of the stack.
* @return
private String getCurrentTable()
return (String) mTableStack.getFirst();
* will qualify the given column name with the name of the current table.
* @param pColumnName
* @return
private String QualifyColumnName(String pColumnName)
if (SELECT.equals(mStatementType))
return getCurrentTable() + "." + pColumnName;
return pColumnName;
* will qualify the column name and append it to the second buffer.
* @param pColumnName
private void appendColumn(String pColumnName)
m2Buffer.append(QualifyColumnName(pColumnName));
* will qualify the column name and append it to the second buffer, adding the "UPPER" function.
* @param pColumnName
private void appendColumnUpper(String pColumnName)
appendUpper();
appendOpening();
appendColumn(pColumnName);
appendClosing();
* will append "?" to the second buffer and add the value to the parameter list,
* or append "NULL" if the value is null.
* @param pValue
private void appendValue(Object pValue)
if (pValue == null)
m2Buffer.append("NULL");
else
m2Buffer.append("?");
mParameterList.add(pValue);
* will append "?" to the second buffer and add the upper-cased value to the parameter list,
* or append "NULL" if the value is null.
* @param pValue
private void appendValueUpper(Object pValue)
appendValue(null == pValue ? null : pValue.toString().toUpperCase());
* will append the condition to the statement. This initiates a series of calls that walks
* the expression tree and builds the SQL accordingly by calls back to methods of this class.
* @param pCondition
private void appendCondition(AbstractEntityCondition pCondition)
pCondition.buildPredicate(this);
* appends a true condition.
private void appendTrue()
m2Buffer.append("1=1");
* appends a false condition.
private void appendFalse()
m2Buffer.append("1=0");
* appends an opening parenthesis.
private void appendOpening()
m2Buffer.append("(");
* appends a closing parenthesis.
private void appendClosing()
m2Buffer.append(")");
* appends "is null".
private void appendIsNull()
m2Buffer.append(" IS NULL");
* appends "is not null".
private void appendIsNotNull()
m2Buffer.append(" IS NOT NULL");
private void appendAnd()
m2Buffer.append(" AND ");
private void appendOr()
m2Buffer.append(" OR ");
private void appendNot()
m2Buffer.append("NOT ");
private void appendLike()
m2Buffer.append(" LIKE ");
private void appendBetween()
m2Buffer.append(" BETWEEN ");
private void appendEqualTo()
m2Buffer.append(" = ");
private void appendNotEqualTo()
m2Buffer.append(" <> ");
private void appendLessThan()
m2Buffer.append(" < ");
private void appendLessThanOrEqualTo()
m2Buffer.append(" <= ");
private void appendGreaterThan()
m2Buffer.append(" > ");
private void appendGreaterThanOrEqualTo()
m2Buffer.append(" >= ");
* appends the upper-casing function.
private void appendUpper()
m2Buffer.append("UCASE");
* constructs the final SQL expression, builds a prepared statement with it,
* and fills the prepared statement with the parameter values.
* @param pConnection
* @return
* @throws SQLException
PreparedStatement generatePreparedStatement(Connection pConnection) throws SQLException
pConnection.setReadOnly(mIsReadOnly);
String sql = m1Buffer + " " + m2Buffer;
System.out.println("GENERATED SQL = ");
System.out.println(sql);
System.out.println("GENERATED SQL = ");
System.out.println(sql);
System.out.println("PARAMETER LIST = ");
System.out.println(mParameterList);
PreparedStatement aPreparedStatement = pConnection.prepareStatement(sql);
for (int i = 0; i < mParameterList.size(); i++)
aPreparedStatement.setObject(1 + i, mParameterList.get(i));
return aPreparedStatement;
* is an enumerated type.
private static final class StatementType extends AbstractType
private StatementType(String pType)
super(pType);
[i]package firstpro.persistence;
import multnomah.database.ConnectionPool;
import java.sql.*;
import java.util.Date;
import java.util.*;
* is the abstract base class for all generated entity classes.
* It encompasses all functionality not specifically tied to a given field.
public abstract class AbstractEntity
* contains all "open" entities in the system.
* This is to insure that two threads cannot update the same entity at the same time.
* It is a weak hash map, so that entries do not prevent garbage collection if something is left open.
static Map sOpenEntityMap = new WeakHashMap();
* is true when the entity represents a row in a table
boolean mIsBacked = false;
* is true when the entity is in a state that allows updating
boolean mIsMutable = false;
* contains the values that exist in the underlying row
Similar Messages
-
Same problem with payment but still need help to s...
Hello,
Could one of the mods. please respond to this?
Still have a problem with paying bill/dd's. As my next bill is due by the end of the week (23/9/11) I will be billed for the whole amount. Due to current circumstances I need to be able to have a monthly budget. This is something I tried to do but without going over old ground this is currently not working. As setting up a DD requires payment of outstanding amounts I am looking for now is options which BT can offer to be able to pay my bill in regular monthly payments. I also have been charged for late payments which is not helping the issue. Could you please clarify what options are available for me to do this? I believe that I have shown 'goodwill' on my behalf to make payments but to stop this from remianing an ongoing problem I would like to resolve this ASAP. Thanks.
Gary PocklingtonHi oldgreygary
If you drop me in an email I'll have a look over your account and see what we can do for you.
You could also give the billing live chat a try as well, you can get a link for it at the top of this board.
If you would prefer, drop me in an email. Use the 'contact us' form in my forum profile under the 'about me' section. You can find it by clicking on my username.
Thx
Craig
BTCare Community Mod
If we have asked you to email us with your details, please make sure you are logged in to the forum, otherwise you will not be able to see our ‘Contact Us’ link within our profiles.
We are sorry but we are unable to deal with service/account queries via the private message(PM) function so please don't PM your account info, we need to deal with this via our email account :-)”
td-p/30">Ratings star on the left-hand side of the post.
If someone answers your question correctly please let other members know by clicking on ’Mark as Accepted Solution’. -
i have synced my iphone with laptop cant find photos?
Syncing does not move photos from the iPhone to the computer. Moving photos from the Camera Roll on the phone to the computer is done by importing photos, just like you would with a digital camera. Connect the iPhone, start your importing program if Auto Run does not start, and import pictures.
-
Haven't been able to use pages for a while. Keep getting following message. Have tried reinstalling iWork, but no luck. Same problems with Keynote and Numbers/
Have you moved Pages from its installed location? Or just dragged a copy to your current system?
It can't find some of its resources apparently.
Peter -
I backup to an external hdd with Time Machine, when it ran out of space it did not delete old backups, now my internal hdd says its full when before it had heaps of space. I have searched for extra files but cant find any. Can anyone help, please.
First, empty the Trash if you haven't already done so. Then reboot. That will temporarily free up some space.
To locate large files, you can use Spotlight as described here. That method may not find large folders that contain a lot of small files.
You can also use a tool such as OmniDiskSweeper (ODS) to explore your volume and find out what's taking up the space. You can delete files with it, but don't do that unless you're sure that you know what you're deleting and that all data is safely backed up. That means you have multiple backups, not just one.
Proceed further only if the problem hasn't been solved.
ODS can't see the whole filesystem when you run it just by double-clicking; it only sees files that you have permission to read. To see everything, you have to run it as root.
Back up all data now.
Install ODS in the Applications folder as usual.
Triple-click the line of text below to select it, then copy the selected text to the Clipboard (command-C):sudo /Applications/OmniDiskSweeper.app/Contents/MacOS/OmniDiskSweeper
Launch the Terminal application in any of the following ways:
☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid.
Paste into the Terminal window (command-V). You'll be prompted for your login password, which won't be displayed when you type it. You may get a one-time warning not to screw up. If you see a message that your username "is not in the sudoers file," then you're not logged in as an administrator.
I don't recommend that you make a habit of doing this. Don't delete anything while running ODS as root. If something needs to be deleted, make sure you know what it is and how it got there, and then delete it by other, safer, means.
When you're done with ODS, quit it and also quit Terminal. -
I have two iphones using the same computer and I can only find a backup for my iphone and not my girlfriends. She uses itunes a lot more often then I do but cant find it. Really need some help. Shouldnt her apps and details be saved online in the itunes store? Even her apps wont appear
If you create an Apple ID for your daughter, signing out of the existing Apple ID with the iTunes & App Store on her iPhone will not change anything on your iPhone.
All apps include DRM protection which is tied to the Apple ID that was used to download the apps.
If she starts using her Apple ID to download apps, when there is an app update for an app on her iPhone that was downloaded with the current shared Apple ID, she will need to use that Apple ID and password to download the app updates. -
When I print a photo to my epson printer, it comes out larger than the original photo - so the photo prints beyond the borders. Tried readjusting all sorts of things but nothing helps. I had this same problem with my Canon. any ideas?
Crop to the print size before pringing
LN -
I have downloaded 2 rented movies. I can find then in my downloads but can not find then in iTunes. I read the others that have had the same problem an I can't find the rented in iTunes
Hey rangermikegsm,
Welcome to Apple Support Communities.
It sounds like you’re concerned because you don’t see your rentals in iTunes, but they appear to have downloaded. Take a look at the article below and check the Rentals tab in iTunes on your MacBook.
About renting movies from the iTunes Store - Apple Support
Find movies you rented previously
Find your movie on the device you used to rent it.
On a Mac or PC: Go to the Rentals tab in the Movies section of the iTunes Library.
On an iOS device: Go to the Rental tab of the Videos app.
Using Apple TV (2nd or 3rd generation): Look in the top shelf of the main menu.
Ciao,
-Jason -
Had same problem with 10.7. I've followed all the suggestions I can find, restored my computer many times, cleaned the registry... this is the worst software install I've ever seen!
I kept getting the reminder to update itunes 11.1.4 on my Windows 7 laptop. I now forget the error message other than it would stop and say something that itunes has stopped working and to do a manual d/l from itunes. That did not work either.
The suggestion to remove the Apple Software Updater from my programs solved this problem. -
I already downloaded bbm, but the problem some of my friends i can see their profile pictures and there is a problem to invite a contact either barcode and through pin. Did you experience the same problem with mine???
I am sorry but your question is not completely clear. What Apple product are you having problems with?
If English is not your primary language, try posting in your native language.
Best of luck. -
I am having same problem with apple tv need 4.4 version and can not find solution this a brand new product out of box yesterday why would it not already have updated version. I am getting frustrated that I can not get this mirroring icon to work. I have tried all suggestions in this thread and nothing works. I also hooked up to laptop through iTunes with micro USB nothing!!!
The new appletv software came out 2 or 3 days ago, how would Apple get it on the device in the box in a store?
Why don't ou update the appletv software? -
hi, sometimes big images could not open with photoshop.ı can open with windows but cant open photoshop.if ı try to open i am seeing a white image.is there any answer for this problem please.
Just to assist those who might help you with this, please give the exact version of Photoshop CS6 you are running, for instance CS6 13.0.1.3.
I had already asked for that in my previous post, but I guess you didn't quite know what I was referencing when I typed "exact version".
Sorry, I cannot help you myself because I don't deal with that kind of 3D images, don't use Windows, and in all frankness I'm not quite following your last post.
Also please give the exact model of your graphics card, so they can check whether it is on the list of cards tested by Adobe.
Thank you. -
I keep having the same problem with my messages over and over again. My number is not checked in my message settings it just unchecks itself
Dear Tomarshe
I had the same problem a couple of weeks back.
What I did was that I restarted that Ipad of mine and voila!
Problem solved!
hope this helped!
- DASHdotDASHdot -
I have downloaded Lr 4.4 on my Laptop in 2013. No I have a new desktop computer. I can enter my konto , have available my serial number but cant find a download possibility. Can you provide me with a clear instruction - thank you
Many thanks
it worked perfectly
Roland
Von: Arpit Kapoor
Gesendet: Donnerstag, 26. Juni 2014 22:12
An: Roland Wimmer
Betreff: I have downloaded Lr 4.4 on my Laptop in 2013. No I have a new desktop computer. I can enter my konto , have available my serial number but cant find a download possibility. Can you provide me with a clear instruction - thank you
I have downloaded Lr 4.4 on my Laptop in 2013. No I have a new desktop computer. I can enter my konto , have available my serial number but cant find a download possibility. Can you provide me with a clear instruction - thank you
created by Arpit Kapoor <https://forums.adobe.com/people/Arpit+Kapoor> in Photoshop Lightroom - View the full discussion <https://forums.adobe.com/message/6500578#6500578> -
Hi i just had my imac hdd replaced and since then ive had nothing but problems...i cant find imovie iphoto or anything and i followed the steps mentioned on here go in app store and buy but my account wont be charged...but it did...can someone pls advise.
Hi i've done everything that i was advised on...and also another problem i tried to restore my mac and it keeps sayin disk erase failed couldnt unmount disk!...i'm so angry i swear....someone somewhere dont know what they doing....
Maybe you are looking for
-
How do I remove an Outlook email account from my iPhone 5?
I have been trying for months to sync my iPhone mail, contacts and calendars with Microsoft Outlook (Office Standard 2007). Now I find a new "Outlook" account in my iPhone email. I need to remove that Outlook (a new Microsoft email program?) and star
-
Aperture photos to iPhone via iTunes problem
I have just created an Aperture 3 library, and am trying to put some photos on my iPhone via iTunes. In the Photos tab of iTunes, when I select Aperture the option to sync "selected albums" is greyed out...I can only select "all photos and albums". W
-
Cash Journal (FBCJ) - Vendor/Customer description
I am having the requirement to display & print cash journal along with vendor/customer description.......Please let me know if anybody come across the same..
-
Essential question concerning java.policy file
I have been searching this forum for an answer to this question: Is there a way to run a signed applet on an intranet (via the Plugin) with out having to go around to each user's workstation and change their java.policy file? So far, I have seen this
-
I am facing issue in one of my production server. Backup of a database appear suspended it is not progressing after attaining 99%completion. I restarted the sql service and again ran the backup for the db still it is getting suspended when it reached